5 Author: Pekka Riikonen <priikone@silcnet.org>
7 Copyright (C) 2005 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 /* Public and private key file headers */
24 #define SILC_PKCS_PUBLIC_KEYFILE_BEGIN "-----BEGIN SILC PUBLIC KEY-----\n"
25 #define SILC_PKCS_PUBLIC_KEYFILE_END "\n-----END SILC PUBLIC KEY-----\n"
26 #define SILC_PKCS_PRIVATE_KEYFILE_BEGIN "-----BEGIN SILC PRIVATE KEY-----\n"
27 #define SILC_PKCS_PRIVATE_KEYFILE_END "\n-----END SILC PRIVATE KEY-----\n"
29 const SilcPKCSAlgorithm *silc_pkcs_silc_get_algorithm(void *public_key);
30 SilcBool silc_pkcs_silc_import_public_key_file(unsigned char *filedata,
31 SilcUInt32 filedata_len,
32 SilcPKCSFileEncoding encoding,
33 void **ret_public_key);
34 SilcBool silc_pkcs_silc_import_public_key(unsigned char *key,
36 void **ret_public_key);
38 silc_pkcs_silc_export_public_key_file(void *public_key,
39 SilcPKCSFileEncoding encoding,
41 unsigned char *silc_pkcs_silc_export_public_key(void *public_key,
43 SilcUInt32 silc_pkcs_silc_public_key_bitlen(void *public_key);
44 void *silc_pkcs_silc_public_key_copy(void *public_key);
45 SilcBool silc_pkcs_silc_public_key_compare(void *key1, void *key2);
46 void silc_pkcs_silc_public_key_free(void *public_key);
47 SilcBool silc_pkcs_silc_import_private_key_file(unsigned char *filedata,
48 SilcUInt32 filedata_len,
49 const char *passphrase,
50 SilcUInt32 passphrase_len,
51 SilcPKCSFileEncoding encoding,
52 void **ret_private_key);
53 SilcBool silc_pkcs_silc_import_private_key(unsigned char *key,
55 void **ret_private_key);
57 silc_pkcs_silc_export_private_key_file(void *private_key,
58 const char *passphrase,
59 SilcUInt32 passphrase_len,
60 SilcPKCSFileEncoding encoding,
63 unsigned char *silc_pkcs_silc_export_private_key(void *private_key,
65 SilcUInt32 silc_pkcs_silc_private_key_bitlen(void *private_key);
66 void silc_pkcs_silc_private_key_free(void *private_key);
67 SilcBool silc_pkcs_silc_encrypt(void *public_key,
72 SilcUInt32 *ret_dst_len);
73 SilcBool silc_pkcs_silc_decrypt(void *private_key,
78 SilcUInt32 *ret_dst_len);
79 SilcBool silc_pkcs_silc_sign(void *private_key,
82 unsigned char *signature,
83 SilcUInt32 signature_size,
84 SilcUInt32 *ret_signature_len,
86 SilcBool silc_pkcs_silc_verify(void *public_key,
87 unsigned char *signature,
88 SilcUInt32 signature_len,
93 #endif /* SILCPK_I_H */