3 /* ===> PKCS #1 -- RSA Cryptography <=== */
6 enum ltc_pkcs_1_v1_5_blocks
8 LTC_PKCS_1_EMSA = 1, /* Block type 1 (PKCS #1 v1.5 signature padding) */
9 LTC_PKCS_1_EME = 2 /* Block type 2 (PKCS #1 v1.5 encryption padding) */
12 enum ltc_pkcs_1_paddings
14 LTC_PKCS_1_V1_5 = 1, /* PKCS #1 v1.5 padding (\sa ltc_pkcs_1_v1_5_blocks) */
15 LTC_PKCS_1_OAEP = 2, /* PKCS #1 v2.0 encryption padding */
16 LTC_PKCS_1_PSS = 3 /* PKCS #1 v2.1 signature padding */
19 int pkcs_1_mgf1( int hash_idx,
20 const unsigned char *seed, unsigned long seedlen,
21 unsigned char *mask, unsigned long masklen);
23 int pkcs_1_i2osp(void *n, unsigned long modulus_len, unsigned char *out);
24 int pkcs_1_os2ip(void *n, unsigned char *in, unsigned long inlen);
26 /* *** v1.5 padding */
27 int pkcs_1_v1_5_encode(const unsigned char *msg,
30 unsigned long modulus_bitlen,
34 unsigned long *outlen);
36 int pkcs_1_v1_5_decode(const unsigned char *msg,
39 unsigned long modulus_bitlen,
41 unsigned long *outlen,
44 /* *** v2.1 padding */
45 int pkcs_1_oaep_encode(const unsigned char *msg, unsigned long msglen,
46 const unsigned char *lparam, unsigned long lparamlen,
47 unsigned long modulus_bitlen, prng_state *prng,
48 int prng_idx, int hash_idx,
49 unsigned char *out, unsigned long *outlen);
51 int pkcs_1_oaep_decode(const unsigned char *msg, unsigned long msglen,
52 const unsigned char *lparam, unsigned long lparamlen,
53 unsigned long modulus_bitlen, int hash_idx,
54 unsigned char *out, unsigned long *outlen,
57 int pkcs_1_pss_encode(const unsigned char *msghash, unsigned long msghashlen,
58 unsigned long saltlen, prng_state *prng,
59 int prng_idx, int hash_idx,
60 unsigned long modulus_bitlen,
61 unsigned char *out, unsigned long *outlen);
63 int pkcs_1_pss_decode(const unsigned char *msghash, unsigned long msghashlen,
64 const unsigned char *sig, unsigned long siglen,
65 unsigned long saltlen, int hash_idx,
66 unsigned long modulus_bitlen, int *res);
70 /* ===> PKCS #5 -- Password Based Cryptography <=== */
73 /* Algorithm #1 (old) */
74 int pkcs_5_alg1(const unsigned char *password, unsigned long password_len,
75 const unsigned char *salt,
76 int iteration_count, int hash_idx,
77 unsigned char *out, unsigned long *outlen);
79 /* Algorithm #2 (new) */
80 int pkcs_5_alg2(const unsigned char *password, unsigned long password_len,
81 const unsigned char *salt, unsigned long salt_len,
82 int iteration_count, int hash_idx,
83 unsigned char *out, unsigned long *outlen);
87 /* $Source: /cvs/libtom/libtomcrypt/src/headers/tomcrypt_pkcs.h,v $ */
88 /* $Revision: 1.7 $ */
89 /* $Date: 2006/11/15 12:44:59 $ */