18 #ifndef _RES_STIR_SHAKEN_H
19 #define _RES_STIR_SHAKEN_H
23 enum ast_stir_shaken_vs_response_code {
24 AST_STIR_SHAKEN_VS_SUCCESS = 0,
25 AST_STIR_SHAKEN_VS_DISABLED,
26 AST_STIR_SHAKEN_VS_INVALID_ARGUMENTS,
27 AST_STIR_SHAKEN_VS_INTERNAL_ERROR,
28 AST_STIR_SHAKEN_VS_NO_IDENTITY_HDR,
29 AST_STIR_SHAKEN_VS_NO_DATE_HDR,
30 AST_STIR_SHAKEN_VS_DATE_HDR_PARSE_FAILURE,
31 AST_STIR_SHAKEN_VS_DATE_HDR_EXPIRED,
32 AST_STIR_SHAKEN_VS_NO_JWT_HDR,
33 AST_STIR_SHAKEN_VS_INVALID_OR_NO_X5U,
34 AST_STIR_SHAKEN_VS_CERT_CACHE_MISS,
35 AST_STIR_SHAKEN_VS_CERT_CACHE_INVALID,
36 AST_STIR_SHAKEN_VS_CERT_CACHE_EXPIRED,
37 AST_STIR_SHAKEN_VS_CERT_RETRIEVAL_FAILURE,
38 AST_STIR_SHAKEN_VS_CERT_CONTENTS_INVALID,
39 AST_STIR_SHAKEN_VS_CERT_NOT_TRUSTED,
40 AST_STIR_SHAKEN_VS_CERT_DATE_INVALID,
41 AST_STIR_SHAKEN_VS_CERT_NO_TN_AUTH_EXT,
42 AST_STIR_SHAKEN_VS_CERT_NO_SPC_IN_TN_AUTH_EXT,
43 AST_STIR_SHAKEN_VS_NO_RAW_KEY,
44 AST_STIR_SHAKEN_VS_SIGNATURE_VALIDATION,
45 AST_STIR_SHAKEN_VS_NO_IAT,
46 AST_STIR_SHAKEN_VS_IAT_EXPIRED,
47 AST_STIR_SHAKEN_VS_INVALID_OR_NO_PPT,
48 AST_STIR_SHAKEN_VS_INVALID_OR_NO_ALG,
49 AST_STIR_SHAKEN_VS_INVALID_OR_NO_TYP,
50 AST_STIR_SHAKEN_VS_INVALID_OR_NO_GRANTS,
51 AST_STIR_SHAKEN_VS_INVALID_OR_NO_ATTEST,
52 AST_STIR_SHAKEN_VS_NO_ORIGID,
53 AST_STIR_SHAKEN_VS_NO_ORIG_TN,
54 AST_STIR_SHAKEN_VS_CID_ORIG_TN_MISMATCH,
55 AST_STIR_SHAKEN_VS_NO_DEST_TN,
56 AST_STIR_SHAKEN_VS_INVALID_HEADER,
57 AST_STIR_SHAKEN_VS_INVALID_GRANT,
58 AST_STIR_SHAKEN_VS_RESPONSE_CODE_MAX
61 enum ast_stir_shaken_as_response_code {
62 AST_STIR_SHAKEN_AS_SUCCESS = 0,
63 AST_STIR_SHAKEN_AS_DISABLED,
64 AST_STIR_SHAKEN_AS_INVALID_ARGUMENTS,
65 AST_STIR_SHAKEN_AS_MISSING_PARAMETERS,
66 AST_STIR_SHAKEN_AS_INTERNAL_ERROR,
67 AST_STIR_SHAKEN_AS_NO_TN_FOR_CALLERID,
68 AST_STIR_SHAKEN_AS_NO_PRIVATE_KEY_AVAIL,
69 AST_STIR_SHAKEN_AS_NO_PUBLIC_CERT_URL_AVAIL,
70 AST_STIR_SHAKEN_AS_NO_ATTEST_LEVEL,
71 AST_STIR_SHAKEN_AS_IDENTITY_HDR_EXISTS,
72 AST_STIR_SHAKEN_AS_NO_TO_HDR,
73 AST_STIR_SHAKEN_AS_TO_HDR_BAD_URI,
74 AST_STIR_SHAKEN_AS_SIGN_ENCODE_FAILURE,
75 AST_STIR_SHAKEN_AS_RESPONSE_CODE_MAX
78 enum stir_shaken_failure_action_enum {
80 stir_shaken_failure_action_UNKNOWN = -1,
82 stir_shaken_failure_action_CONTINUE = 0,
84 stir_shaken_failure_action_REJECT_REQUEST,
86 stir_shaken_failure_action_CONTINUE_RETURN_REASON,
88 stir_shaken_failure_action_NOT_SET,
110 enum ast_stir_shaken_as_response_code
111 ast_stir_shaken_as_ctx_create(
const char *caller_id,
113 const char *profile_name,
136 enum ast_stir_shaken_as_response_code ast_stir_shaken_as_ctx_add_fingerprint(
149 enum ast_stir_shaken_as_response_code ast_stir_shaken_attest(
173 enum ast_stir_shaken_vs_response_code
174 ast_stir_shaken_vs_ctx_create(
const char *caller_id,
175 struct ast_channel *chan,
const char *profile_name,
184 void ast_stir_shaken_vs_ctx_set_response_code(
186 enum ast_stir_shaken_vs_response_code vs_rc);
197 enum ast_stir_shaken_vs_response_code
199 const char *identity_hdr);
210 enum ast_stir_shaken_vs_response_code
212 const char *date_hdr);
221 enum stir_shaken_failure_action_enum
222 ast_stir_shaken_vs_get_failure_action(
233 int ast_stir_shaken_vs_get_use_rfc9410_responses(
244 int ast_stir_shaken_add_result_to_channel(
255 enum ast_stir_shaken_vs_response_code
Main Channel structure associated with a channel.
Sorcery Data Access Layer API.