5 Author: Pekka Riikonen <priikone@silcnet.org>
7 Copyright (C); 2006 Pekka Riikonen
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; version 2 of the License.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
23 SilcBool silc_pkcs1_generate_key(SilcUInt32 keylen,
25 void **ret_public_key,
26 void **ret_private_key);
27 int silc_pkcs1_import_public_key(unsigned char *key,
29 void **ret_public_key);
30 unsigned char *silc_pkcs1_export_public_key(void *public_key,
32 SilcUInt32 silc_pkcs1_public_key_bitlen(void *public_key);
33 void *silc_pkcs1_public_key_copy(void *public_key);
34 SilcBool silc_pkcs1_public_key_compare(void *key1, void *key2);
35 void silc_pkcs1_public_key_free(void *public_key);
36 int silc_pkcs1_import_private_key(unsigned char *key,
38 void **ret_private_key);
39 unsigned char *silc_pkcs1_export_private_key(void *private_key,
41 SilcUInt32 silc_pkcs1_private_key_bitlen(void *private_key);
42 void silc_pkcs1_private_key_free(void *private_key);
43 SilcBool silc_pkcs1_encrypt(void *public_key,
48 SilcUInt32 *ret_dst_len,
50 SilcBool silc_pkcs1_decrypt(void *private_key,
55 SilcUInt32 *ret_dst_len);
56 SilcBool silc_pkcs1_sign(void *private_key,
59 unsigned char *signature,
60 SilcUInt32 signature_size,
61 SilcUInt32 *ret_signature_len,
62 SilcBool compute_hash,
64 SilcBool silc_pkcs1_verify(void *public_key,
65 unsigned char *signature,
66 SilcUInt32 signature_len,
70 SilcBool silc_pkcs1_sign_no_oid(void *private_key,
73 unsigned char *signature,
74 SilcUInt32 signature_size,
75 SilcUInt32 *ret_signature_len,
76 SilcBool compute_hash,
78 SilcBool silc_pkcs1_verify_no_oid(void *public_key,
79 unsigned char *signature,
80 SilcUInt32 signature_len,
85 #endif /* SILCPKCS1_I_H */