summaryrefslogtreecommitdiffstats
path: root/ncr.h
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-07-23 09:10:28 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-07-23 09:10:28 +0200
commit6fbb3400ff70070dc12460c5336b201cfa275ab4 (patch)
tree6ffd48aec7a4b511555186b0a7c781a6b7d637d6 /ncr.h
parentf58e82a071a25531f7e7f83cc4ed8982131dea5c (diff)
downloadkernel-crypto-6fbb3400ff70070dc12460c5336b201cfa275ab4.tar.gz
kernel-crypto-6fbb3400ff70070dc12460c5336b201cfa275ab4.tar.xz
kernel-crypto-6fbb3400ff70070dc12460c5336b201cfa275ab4.zip
Splitted key from key_params structure. Also separated dsa from rsa structure in params.
Diffstat (limited to 'ncr.h')
-rw-r--r--ncr.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/ncr.h b/ncr.h
index 184ef56b556..47c0a041a38 100644
--- a/ncr.h
+++ b/ncr.h
@@ -137,11 +137,16 @@ typedef enum {
RSA_PKCS1_PSS, /* for signatures only */
} ncr_rsa_type_t;
+typedef enum {
+ NCR_KEY_PARAMS_CIPHER,
+ NCR_KEY_PARAMS_DH,
+ NCR_KEY_PARAMS_RSA
+} ncr_key_params_type_t;
+
/* used in derivation/encryption
*/
struct ncr_key_params_st {
- ncr_key_t key;
-
+ ncr_key_params_type_t type;
union {
struct {
uint8_t iv[NCR_CIPHER_MAX_BLOCK_LEN];
@@ -156,7 +161,10 @@ struct ncr_key_params_st {
ncr_algorithm_t oaep_hash; /* for OAEP */
ncr_algorithm_t sign_hash; /* for signatures */
unsigned int pss_salt; /* PSS signatures */
- } pk;
+ } rsa;
+ struct {
+ ncr_algorithm_t sign_hash; /* for signatures */
+ } dsa;
} params;
};
@@ -164,7 +172,8 @@ struct ncr_key_derivation_params_st {
ncr_key_t newkey;
unsigned int keyflags; /* for new key */
- struct ncr_key_params_st key;
+ ncr_key_t key;
+ struct ncr_key_params_st params;
};
#define MAX_KEY_ID_SIZE 20
@@ -212,7 +221,9 @@ struct ncr_key_data_st {
struct ncr_key_wrap_st {
ncr_wrap_algorithm_t algorithm;
ncr_key_t keytowrap;
- struct ncr_key_params_st key;
+
+ ncr_key_t key;
+ struct ncr_key_params_st params;
ncr_data_t data; /* encrypted keytowrap */
};
@@ -255,6 +266,8 @@ typedef int ncr_session_t;
struct ncr_session_st {
/* input */
ncr_algorithm_t algorithm;
+
+ ncr_key_t key;
struct ncr_key_params_st params;
ncr_crypto_op_t op;