5 Author: Pekka Riikonen <priikone@silcnet.org>
7 Copyright (C) 2005, 2007 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 *
30 silc_pkcs_silc_get_algorithm(const struct SilcPKCSObjectStruct *pkcs,
33 silc_pkcs_silc_import_public_key_file(const struct SilcPKCSObjectStruct *pkcs,
34 unsigned char *filedata,
35 SilcUInt32 filedata_len,
36 SilcPKCSFileEncoding encoding,
37 void **ret_public_key);
38 int silc_pkcs_silc_import_public_key(const struct SilcPKCSObjectStruct *pkcs,
41 void **ret_public_key);
43 silc_pkcs_silc_export_public_key_file(const struct SilcPKCSObjectStruct *pkcs,
46 SilcPKCSFileEncoding encoding,
49 silc_pkcs_silc_export_public_key(const struct SilcPKCSObjectStruct *pkcs,
54 silc_pkcs_silc_public_key_bitlen(const struct SilcPKCSObjectStruct *pkcs,
56 void *silc_pkcs_silc_public_key_copy(const struct SilcPKCSObjectStruct *pkcs,
59 silc_pkcs_silc_public_key_compare(const struct SilcPKCSObjectStruct *pkcs,
60 void *key1, void *key2);
61 void silc_pkcs_silc_public_key_free(const struct SilcPKCSObjectStruct *pkcs,
64 silc_pkcs_silc_import_private_key_file(const struct SilcPKCSObjectStruct *pkcs,
65 unsigned char *filedata,
66 SilcUInt32 filedata_len,
67 const char *passphrase,
68 SilcUInt32 passphrase_len,
69 SilcPKCSFileEncoding encoding,
70 void **ret_private_key);
71 int silc_pkcs_silc_import_private_key(const struct SilcPKCSObjectStruct *pkcs,
74 void **ret_private_key);
76 silc_pkcs_silc_export_private_key_file(const struct SilcPKCSObjectStruct *pkcs,
79 const char *passphrase,
80 SilcUInt32 passphrase_len,
81 SilcPKCSFileEncoding encoding,
85 silc_pkcs_silc_export_private_key(const struct SilcPKCSObjectStruct *pkcs,
90 silc_pkcs_silc_private_key_bitlen(const struct SilcPKCSObjectStruct *pkcs,
92 void silc_pkcs_silc_private_key_free(const struct SilcPKCSObjectStruct *pkcs,
95 silc_pkcs_silc_encrypt(const struct SilcPKCSObjectStruct *pkcs,
100 SilcPKCSEncryptCb encrypt_cb,
103 silc_pkcs_silc_decrypt(const struct SilcPKCSObjectStruct *pkcs,
107 SilcPKCSDecryptCb decrypt_cb,
110 silc_pkcs_silc_sign(const struct SilcPKCSObjectStruct *pkcs,
114 SilcBool compute_hash,
116 SilcPKCSSignCb sign_cb,
119 silc_pkcs_silc_verify(const struct SilcPKCSObjectStruct *pkcs,
121 unsigned char *signature,
122 SilcUInt32 signature_len,
126 SilcPKCSVerifyCb verify_cb,
129 #endif /* SILCPK_I_H */