summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-10-07 16:52:47 +0200
committerMiloslav Trmač <mitr@redhat.com>2010-10-07 16:52:47 +0200
commita823e3dcb9106854c6062669959ba4bfbbb0602f (patch)
treee4a03a769beda2e169b67863dfc55180acb73c53
parentb3f834abe9a059605a749449d2b4b2146667ed3b (diff)
downloadncrypto-a823e3dcb9106854c6062669959ba4bfbbb0602f.tar.gz
ncrypto-a823e3dcb9106854c6062669959ba4bfbbb0602f.tar.xz
ncrypto-a823e3dcb9106854c6062669959ba4bfbbb0602f.zip
Improve interface documentation
-rw-r--r--include/ncrypto/ncrypto.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/include/ncrypto/ncrypto.h b/include/ncrypto/ncrypto.h
index 8da49c0..c9b7329 100644
--- a/include/ncrypto/ncrypto.h
+++ b/include/ncrypto/ncrypto.h
@@ -32,6 +32,19 @@ Red Hat author: Miloslav Trmač <mitr@redhat.com> */
#include <pkcs11.h>
+/* In general, semantics aspects that are not documented here are same as in
+ PCKS#11. */
+
+ /* Symmetric keys */
+
+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);
+
+ /* Digests */
+
struct ncr_digest_session;
/* Session lifetime management. */
@@ -49,17 +62,18 @@ CK_RV ncr_digest_final (struct ncr_digest_session *sess, void *dest,
CK_RV ncr_digest (struct ncr_digest_session *sess, void *dest,
size_t *dest_size_ptr, const void *data, size_t data_size);
+/* You'll get better performance by keeping a long-term digest session than
+ repeatedly calling this function. */
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;
+ /* Symmetric encryption */
-struct ncr_symm_key;
+struct ncr_symm_cipher_session;
-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);
+/* Note that for *_ECB and *_CBC, the input must be block-aligned. For *_CBC_PAD,
+ it does not have to be. */
/* Session lifetime management. */
CK_RV ncr_symm_cipher_alloc (struct ncr_symm_cipher_session **sess,