Asterisk.org: Developer Documentation (28 Oct 2009)

Wed Oct 28 15:48:45 2009

## Asterisk developer's documentation

# crypto.h File Reference

Provide cryptographic signature routines. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Defines

#define | AST_KEY_PRIVATE (1 << 1)
#define | AST_KEY_PUBLIC (1 << 0)

## Variables

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.
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.
int(* | ast_decrypt_bin )(unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key)
int(* | ast_encrypt_bin )(unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key)
struct ast_key *(* | ast_key_get )(const char *key, int type)
| Retrieve a key.
int(* | ast_sign )(struct ast_key *key, char *msg, char *sig)
int(* | ast_sign_bin )(struct ast_key *key, const char *msg, int msglen, unsigned char *sig)

## Detailed Description

Provide cryptographic signature routines.

Definition in file crypto.h.

## Define Documentation

#define AST_KEY_PRIVATE (1 << 1)

Definition at line 31 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 30 of file crypto.h.

Referenced by __ast_check_signature_bin(), __ast_encrypt_bin(), authenticate_verify(), check_key(), register_verify(), show_keys(), try_load_key(), and update_key().

## Variable Documentation

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.

Parameters:

  | key | a public key to use to verify
  | msg | the message that has been signed
  | sig | the proposed valid signature in mime64-like encoding

Returns 0 if the signature is valid, or -1 otherwise

Referenced by authenticate_verify(), crypto_init(), and register_verify().

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.

Parameters:

  | key | a public key to use to verify
  | msg | the message that has been signed
  | sig | the proposed valid signature in raw binary representation

Returns 0 if the signature is valid, or -1 otherwise

Referenced by __ast_check_signature(), check_key(), and crypto_init().

int(* ast_decrypt_bin)(unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key)

Parameters:

  | 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

Returns length of decrypted data on success or -1 on failure.

Referenced by check_key(), and crypto_init().

int(* ast_encrypt_bin)(unsigned char *dst, const unsigned char *src, int srclen, struct ast_key *key)

Parameters:

  | 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

Returns length of encrypted data on success or -1 on failure.

Referenced by crypto_init(), and update_key().

struct ast_key*(* ast_key_get)(const char *key, int type)

Retrieve a key.

Parameters:

  | name | of the key we are retrieving
  | int | type of key (AST_KEY_PUBLIC or AST_KEY_PRIVATE)

Returns the key on success or NULL on failure

Referenced by authenticate(), authenticate_verify(), check_key(), crypto_init(), register_verify(), and update_key().

int(* ast_sign)(struct ast_key *key, char *msg, char *sig)

Parameters:

  | 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

Returns 0 on success or -1 on failure.

Referenced by authenticate(), and crypto_init().

int(* ast_sign_bin)(struct ast_key *key, const char *msg, int msglen, unsigned char *sig)

Parameters:

  | 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

Returns 0 on success or -1 on failure.

Referenced by __ast_sign(), crypto_init(), and update_key().