diff options
| author | Miloslav Trmač <mitr@redhat.com> | 2010-10-27 00:05:26 +0200 |
|---|---|---|
| committer | Miloslav Trmač <mitr@redhat.com> | 2010-10-27 00:05:26 +0200 |
| commit | 06a02e2391625a09e194acf1c6d31aecf2266b8f (patch) | |
| tree | c880a79fc8dbc3156a4efe9392a3de32eb32f6cb /include/ncrypto | |
| parent | 46536dbd9e60c46efe4c22916a320838eaa38110 (diff) | |
| download | ncrypto-06a02e2391625a09e194acf1c6d31aecf2266b8f.tar.gz ncrypto-06a02e2391625a09e194acf1c6d31aecf2266b8f.tar.xz ncrypto-06a02e2391625a09e194acf1c6d31aecf2266b8f.zip | |
Add "symmetric signature" (really HMAC) support
Diffstat (limited to 'include/ncrypto')
| -rw-r--r-- | include/ncrypto/ncrypto.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/ncrypto/ncrypto.h b/include/ncrypto/ncrypto.h index aef6bb4..24d8e8e 100644 --- a/include/ncrypto/ncrypto.h +++ b/include/ncrypto/ncrypto.h @@ -183,4 +183,38 @@ 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); + /* Symmetric signatures */ + +struct ncr_symm_signature_session; + +/* Session lifetime management. */ +CK_RV ncr_symm_signature_alloc (struct ncr_symm_signature_session **sess, + CK_MECHANISM_TYPE mech); +CK_RV ncr_symm_signature_free (struct ncr_symm_signature_session *sess); +/* Use either ncr_symm_signature_sign_{init,update,final} (), or + ncr_symm_signature_{sign_init,sign} (). After finishing such a call + sequence, a new sequence can be started within the same session. Same for + verification sequences. + + Symmetric signature mechanisms tend to use keys of type + CKK_GENERIC_SECRET. */ +CK_RV ncr_symm_signature_sign_init (struct ncr_symm_signature_session *sess, + struct ncr_symm_key *key); +CK_RV ncr_symm_signature_sign_update (struct ncr_symm_signature_session *sess, + const void *data, size_t size); +CK_RV ncr_symm_signature_sign_final (struct ncr_symm_signature_session *sess, + void *dest, size_t *size_ptr); +CK_RV ncr_symm_signature_sign (struct ncr_symm_signature_session *sess, + void *dest, size_t *dest_size_ptr, + const void *data, size_t data_size); +CK_RV ncr_symm_signature_verify_init (struct ncr_symm_signature_session *sess, + struct ncr_symm_key *key); +CK_RV ncr_symm_signature_verify_update (struct ncr_symm_signature_session *sess, + const void *data, size_t size); +CK_RV ncr_symm_signature_verify_final (struct ncr_symm_signature_session *sess, + const void *signature, size_t size); +CK_RV ncr_symm_signature_verify (struct ncr_symm_signature_session *sess, + const void *signature, size_t signature_size, + const void *data, size_t data_size); + #endif |
