Typedefs | |
typedef struct _Eet_Key | Eet_Key |
typedef int(* | Eet_Key_Password_Callback) (char *buffer, int size, int rwflag, void *data) |
Callback used to request if needed the password of a private key. More... | |
Functions | |
EAPI Eet_Key * | eet_identity_open (const char *certificate_file, const char *private_key_file, Eet_Key_Password_Callback cb) |
Creates an Eet_Key needed for signing an eet file. More... | |
EAPI void | eet_identity_close (Eet_Key *key) |
Close and release all resource used by an Eet_Key. A reference counter prevent it from being freed until all file using it are also closed. More... | |
EAPI Eet_Error | eet_identity_set (Eet_File *ef, Eet_Key *key) |
Sets a key to sign a file. More... | |
EAPI void | eet_identity_print (Eet_Key *key, FILE *out) |
Displays both private and public key of an Eet_Key. More... | |
EAPI Eina_Bool | eet_identity_verify (Eet_File *ef, const char *certificate_file) |
Compares the identify certificate of an eet file against a stored one. More... | |
const EAPI void * | eet_identity_x509 (Eet_File *ef, int *der_length) |
Gets the x509 der certificate associated with an Eet_File. Will return NULL if the file is not signed. More... | |
const EAPI void * | eet_identity_signature (Eet_File *ef, int *signature_length) |
Gets the raw signature associated with an Eet_File. Will return NULL if the file is not signed. More... | |
const EAPI void * | eet_identity_sha1 (Eet_File *ef, int *sha1_length) |
Gets the SHA1 associated with a file. Could be the one used to sign the data or if the data where not signed, it will be the SHA1 of the file. More... | |
EAPI void | eet_identity_certificate_print (const unsigned char *certificate, int der_length, FILE *out) |
Displays the x509 der certificate to out. More... | |
Eet allows one to protect entries of an Eet_File individually. This may be used to ensure data was not tampered or that third party does not read your data.
Opaque handle that defines an identity (also known as key) in Eet's cipher system.
typedef int(* Eet_Key_Password_Callback) (char *buffer, int size, int rwflag, void *data) |
Callback used to request if needed the password of a private key.
buffer | the buffer where to store the password. |
size | the maximum password size (size of buffer, including '\0'). |
rwflag | if the buffer is also readable or just writable. |
data | currently unused, may contain some context in future. |
1
on success and password was set to buffer
, 0
on failure.EAPI Eet_Key* eet_identity_open | ( | const char * | certificate_file, |
const char * | private_key_file, | ||
Eet_Key_Password_Callback | cb | ||
) |
Creates an Eet_Key needed for signing an eet file.
The certificate should provide the public that match the private key. No verification is done to ensure that.
certificate_file | The file where to find the certificate. |
private_key_file | The file that contains the private key. |
cb | Function to callback if password is required to unlock private key. |
NULL
on failure.References eina_file_close(), eina_file_map_all(), eina_file_map_free(), eina_file_open(), EINA_FILE_SEQUENTIAL, eina_file_size_get(), eina_mmap_safety_enabled_set(), EINA_TRUE, and emile_cipher_init().
Close and release all resource used by an Eet_Key. A reference counter prevent it from being freed until all file using it are also closed.
key | the key handle to close and free resources. |
References emile_cipher_init().
Sets a key to sign a file.
ef | the file to set the identity. |
key | the key handle to set as identity. |
ef
is invalid or EET_ERROR_NONE on success.References EET_ERROR_BAD_OBJECT, and EET_ERROR_NONE.
Displays both private and public key of an Eet_Key.
key | the handle to print. |
out | where to print. |
References emile_cipher_init(), and ERR.
Compares the identify certificate of an eet file against a stored one.
ef | The file handle to check the identify of |
certificate_file | The path to the certificate file |
EINA_TRUE
if the certificates match, otherwise EINA_FALSE
The ef
file handle mus be valid, and a signed file, otherwise checking will fail. The path to the certificate file must be a valid file path to a 'pem' format file (the same used for siging with eet_identity_open() as a certificate file).
References EINA_FALSE, and EINA_TRUE.
Gets the x509 der certificate associated with an Eet_File. Will return NULL if the file is not signed.
ef | The file handle to query. |
der_length | The length of returned data, may be NULL . |
NULL
on error.Gets the raw signature associated with an Eet_File. Will return NULL if the file is not signed.
ef | The file handle to query. |
signature_length | The length of returned data, may be NULL . |
NULL
on error. Gets the SHA1 associated with a file. Could be the one used to sign the data or if the data where not signed, it will be the SHA1 of the file.
ef | The file handle to query. |
sha1_length | The length of returned data, may be NULL . |
NULL
on error.EAPI void eet_identity_certificate_print | ( | const unsigned char * | certificate, |
int | der_length, | ||
FILE * | out | ||
) |
Displays the x509 der certificate to out.
certificate | the x509 certificate to print |
der_length | The length the certificate. |
out | where to print. |
References alloca(), emile_cipher_init(), ERR, and INF.