Provide cryptographic signature routines. More...
Go to the source code of this file.
Macros | |
#define | AST_KEY_PRIVATE (1 << 1) |
#define | AST_KEY_PUBLIC (1 << 0) |
Typedefs | |
typedef AES_KEY | ast_aes_decrypt_key |
typedef AES_KEY | ast_aes_encrypt_key |
Functions | |
void | ast_aes_decrypt (const unsigned char *in, unsigned char *out, const ast_aes_decrypt_key *ctx) |
AES decrypt data. More... | |
void | ast_aes_encrypt (const unsigned char *in, unsigned char *out, const ast_aes_encrypt_key *ctx) |
AES encrypt data. More... | |
int | ast_aes_set_decrypt_key (const unsigned char *key, ast_aes_decrypt_key *ctx) |
Set a decryption key. More... | |
int | ast_aes_set_encrypt_key (const unsigned char *key, ast_aes_encrypt_key *ctx) |
Set an encryption key. More... | |
int | ast_check_signature (struct ast_key *key, const char *msg, const char *sig) |
Check the authenticity of a message signature using a given public key. More... | |
int | ast_check_signature_bin (struct ast_key *key, const char *msg, int msglen, const unsigned char *sig) |
Check the authenticity of a message signature using a given public key. More... | |
int | ast_crypto_loaded (void) |
int | ast_decrypt_bin (unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key) |
Decrypt a message using a given private key. More... | |
int | ast_encrypt_bin (unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key) |
Encrypt a message using a given private key. More... | |
struct ast_key * | ast_key_get (const char *key, int type) |
Retrieve a key. More... | |
int | ast_sign (struct ast_key *key, char *msg, char *sig) |
Sign a message signature using a given private key. More... | |
int | ast_sign_bin (struct ast_key *key, const char *msg, int msglen, unsigned char *sig) |
Sign a message signature using a given private key. More... | |
Provide cryptographic signature routines.
Definition in file crypto.h.
#define AST_KEY_PRIVATE (1 << 1) |
Definition at line 43 of file crypto.h.
Referenced by ast_decrypt_bin(), ast_sign_bin(), authenticate(), check_key(), pw_cb(), try_load_key(), and update_key().
#define AST_KEY_PUBLIC (1 << 0) |
Definition at line 42 of file crypto.h.
Referenced by ast_check_signature_bin(), ast_encrypt_bin(), authenticate_verify(), check_key(), handle_cli_keys_show(), register_verify(), try_load_key(), and update_key().
typedef AES_KEY ast_aes_decrypt_key |
typedef AES_KEY ast_aes_encrypt_key |
void ast_aes_decrypt | ( | const unsigned char * | in, |
unsigned char * | out, | ||
const ast_aes_decrypt_key * | ctx | ||
) |
AES decrypt data.
in | encrypted data |
out | pointer to a buffer to hold the decrypted output |
ctx | address of an aes encryption context filled in with ast_aes_set_decrypt_key |
Definition at line 476 of file res_crypto.c.
Referenced by aes_helper(), decrypt_memcpy(), and memcpy_decrypt().
void ast_aes_encrypt | ( | const unsigned char * | in, |
unsigned char * | out, | ||
const ast_aes_encrypt_key * | ctx | ||
) |
AES encrypt data.
in | data to be encrypted |
out | pointer to a buffer to hold the encrypted output |
ctx | address of an aes encryption context filled in with ast_aes_set_encrypt_key |
Definition at line 471 of file res_crypto.c.
Referenced by aes_helper(), encrypt_memcpy(), and memcpy_encrypt().
int ast_aes_set_decrypt_key | ( | const unsigned char * | key, |
ast_aes_decrypt_key * | ctx | ||
) |
Set a decryption key.
key | a 16 char key |
ctx | address of an aes encryption context |
0 | success |
nonzero | failure |
Definition at line 466 of file res_crypto.c.
Referenced by aes_helper(), build_ecx_key(), build_encryption_keys(), check_key(), socket_process(), and update_key().
int ast_aes_set_encrypt_key | ( | const unsigned char * | key, |
ast_aes_encrypt_key * | ctx | ||
) |
Set an encryption key.
key | a 16 char key |
ctx | address of an aes encryption context |
0 | success |
nonzero | failure |
Definition at line 461 of file res_crypto.c.
Referenced by aes_helper(), build_ecx_key(), check_key(), and update_key().
int ast_check_signature | ( | struct ast_key * | key, |
const char * | msg, | ||
const char * | sig | ||
) |
Check the authenticity of a message signature using a given public key.
key | a public key to use to verify |
msg | the message that has been signed |
sig | the proposed valid signature in mime64-like encoding |
0 | if the signature is valid. |
-1 | otherwise. |
Check the authenticity of a message signature using a given public key.
Definition at line 440 of file res_crypto.c.
References ast_base64decode(), ast_check_signature_bin(), ast_log(), and LOG_WARNING.
Referenced by authenticate_verify(), and register_verify().
int ast_check_signature_bin | ( | struct ast_key * | key, |
const char * | msg, | ||
int | msglen, | ||
const unsigned char * | dsig | ||
) |
Check the authenticity of a message signature using a given public key.
key | a public key to use to verify |
msg | the message that has been signed |
sig | the proposed valid signature in raw binary representation |
0 | if the signature is valid. |
-1 | otherwise. |
Check the authenticity of a message signature using a given public key.
Definition at line 411 of file res_crypto.c.
References ast_debug, AST_KEY_PUBLIC, ast_log(), ast_key::digest, LOG_WARNING, and SHA1.
Referenced by ast_check_signature(), and check_key().
int ast_crypto_loaded | ( | void | ) |
Definition at line 456 of file res_crypto.c.
int ast_decrypt_bin | ( | unsigned char * | dst, |
const unsigned char * | src, | ||
int | srclen, | ||
struct ast_key * | key | ||
) |
Decrypt a message using a given private key.
key | a private key to use to decrypt |
src | the message to decrypt |
srclen | the length of the message to decrypt |
dst | a pointer to a buffer of at least srclen bytes in which the decrypted answer will be stored |
length | of dencrypted data on success. |
-1 | on failure. |
Decrypt a message using a given private key.
Definition at line 331 of file res_crypto.c.
References AST_KEY_PRIVATE, ast_log(), LOG_NOTICE, and LOG_WARNING.
Referenced by check_key().
int ast_encrypt_bin | ( | unsigned char * | dst, |
const unsigned char * | src, | ||
int | srclen, | ||
struct ast_key * | key | ||
) |
Encrypt a message using a given private key.
key | a private key to use to encrypt |
src | the message to encrypt |
srclen | the length of the message to encrypt |
dst | a pointer to a buffer of at least srclen * 1.5 bytes in which the encrypted answer will be stored |
length | of encrypted data on success. |
-1 | on failure. |
Encrypt a message using a given private key.
Definition at line 363 of file res_crypto.c.
References AST_KEY_PUBLIC, ast_log(), LOG_NOTICE, and LOG_WARNING.
Referenced by update_key().
struct ast_key* ast_key_get | ( | const char * | kname, |
int | ktype | ||
) |
Retrieve a key.
name | of the key we are retrieving |
int | type of key (AST_KEY_PUBLIC or AST_KEY_PRIVATE) |
the | key on success. |
NULL | on failure. |
Retrieve a key.
Definition at line 136 of file res_crypto.c.
References AST_RWLIST_RDLOCK, AST_RWLIST_TRAVERSE, AST_RWLIST_UNLOCK, ast_key::ktype, and ast_key::name.
Referenced by authenticate(), authenticate_verify(), check_key(), register_verify(), and update_key().
int ast_sign | ( | struct ast_key * | key, |
char * | msg, | ||
char * | sig | ||
) |
Sign a message signature using a given private key.
key | a private key to use to create the signature |
msg | the message to sign |
sig | a pointer to a buffer of at least 256 bytes in which the mime64-like encoded signature will be stored |
0 | on success. |
-1 | on failure. |
Sign a message signature using a given private key.
Definition at line 394 of file res_crypto.c.
References ast_base64encode(), and ast_sign_bin().
Referenced by authenticate().
int ast_sign_bin | ( | struct ast_key * | key, |
const char * | msg, | ||
int | msglen, | ||
unsigned char * | dsig | ||
) |
Sign a message signature using a given private key.
key | a private key to use to create the signature |
msg | the message to sign |
sig | a pointer to a buffer of at least 128 bytes in which the raw encoded signature will be stored |
0 | on success. |
-1 | on failure. |
Sign a message signature using a given private key.
Definition at line 299 of file res_crypto.c.
References AST_KEY_PRIVATE, ast_log(), ast_key::digest, LOG_WARNING, and SHA1.
Referenced by ast_sign(), and update_key().