From 8a0e6e168da0c9efed8810725af5c593a8edf7cf Mon Sep 17 00:00:00 2001 From: Miloslav Trmač Date: Tue, 5 Oct 2010 17:25:37 +0200 Subject: Add symmetric ciphers --- include/ncrypto/ncrypto.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'include') diff --git a/include/ncrypto/ncrypto.h b/include/ncrypto/ncrypto.h index af4f518..8da49c0 100644 --- a/include/ncrypto/ncrypto.h +++ b/include/ncrypto/ncrypto.h @@ -53,4 +53,45 @@ CK_RV ncr_digest_standalone (CK_MECHANISM_TYPE mech, void *dest, size_t *dest_size_ptr, const void *data, size_t data_size); +struct ncr_symm_cipher_session; + +struct ncr_symm_key; + +CK_RV ncr_symm_key_create (struct ncr_symm_key **key, CK_KEY_TYPE type, + const void *value, size_t value_size); +CK_RV ncr_symm_key_destroy (struct ncr_symm_key *key); + +/* Session lifetime management. */ +CK_RV ncr_symm_cipher_alloc (struct ncr_symm_cipher_session **sess, + CK_MECHANISM_TYPE mech); +CK_RV ncr_symm_cipher_free (struct ncr_symm_cipher_session *sess); +/* Use either ncr_symm_cipher_encrypt_{init,update,final} (), or + ncr_symm_cipher_{encrypt_init,encrypt} (). After finishing such a call + sequence, a new sequence can be started within the same session. Same for + decryption sequences. */ +CK_RV ncr_symm_cipher_encrypt_init (struct ncr_symm_cipher_session *sess, + struct ncr_symm_key *key, + const void *param, size_t param_size); +CK_RV ncr_symm_cipher_encrypt_update (struct ncr_symm_cipher_session *sess, + void *dest, size_t *dest_size_ptr, + const void *src, size_t src_size); +CK_RV ncr_symm_cipher_encrypt_final (struct ncr_symm_cipher_session *sess, + void *dest, size_t *dest_size_ptr, + const void *src, size_t src_size); +CK_RV ncr_symm_cipher_encrypt (struct ncr_symm_cipher_session *sess, void *dest, + size_t *dest_size_ptr, const void *src, + size_t src_size); +CK_RV ncr_symm_cipher_decrypt_init (struct ncr_symm_cipher_session *sess, + struct ncr_symm_key *key, + const void *param, size_t param_size); +CK_RV ncr_symm_cipher_decrypt_update (struct ncr_symm_cipher_session *sess, + void *dest, size_t *dest_size_ptr, + const void *src, size_t src_size); +CK_RV ncr_symm_cipher_decrypt_final (struct ncr_symm_cipher_session *sess, + void *dest, size_t *dest_size_ptr, + const void *src, size_t src_size); +CK_RV ncr_symm_cipher_decrypt (struct ncr_symm_cipher_session *sess, void *dest, + size_t *dest_size_ptr, const void *src, + size_t src_size); + #endif -- cgit