Eet allows one to protect entries of an Eet_File individually. More...
Typedefs | |
typedef struct _Eet_Key | Eet_Key |
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. 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. 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... | |
EAPI const void * | eet_identity_x509 (Eet_File *ef, int *der_length) |
Gets the x509 der certificate associated with an Eet_File. More... | |
EAPI const void * | eet_identity_signature (Eet_File *ef, int *signature_length) |
Gets the raw signature associated with an Eet_File. More... | |
EAPI const void * | eet_identity_sha1 (Eet_File *ef, int *sha1_length) |
Gets the SHA1 associated with a 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.
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.