updates.
[silc.git] / lib / silccrypt / silcpkcs.h
index 8accedea1e75972600a62bbb126ae15003af0e03..c726cfa80c2e81c45a9ed2d78153458710fb8c97 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
 
-  Copyright (C) 1997 - 2000 Pekka Riikonen
+  Copyright (C) 1997 - 2001 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -84,6 +84,10 @@ typedef struct {
 #define SILC_PKCS_PRIVATE_KEYFILE_BEGIN "-----BEGIN SILC PRIVATE KEY-----\n"
 #define SILC_PKCS_PRIVATE_KEYFILE_END "\n-----END SILC PRIVATE KEY-----\n"
 
+/* Public and private key file encoding types */
+#define SILC_PKCS_FILE_BIN 0
+#define SILC_PKCS_FILE_PEM 1
+
 /* Macros */
 
 /* Macros used to implement the SILC PKCS API */
@@ -198,15 +202,21 @@ silc_pkcs_private_key_data_encode(unsigned char *prv, unsigned int prv_len,
                                  char *pkcs, unsigned int *len);
 int silc_pkcs_private_key_decode(unsigned char *data, unsigned int data_len,
                                 SilcPrivateKey *private_key);
-int silc_pkcs_save_public_key(char *filename, SilcPublicKey public_key);
+int silc_pkcs_save_public_key(char *filename, SilcPublicKey public_key,
+                             unsigned int encoding);
 int silc_pkcs_save_public_key_data(char *filename, unsigned char *data,
-                                  unsigned int data_len);
+                                  unsigned int data_len,
+                                  unsigned int encoding);
 int silc_pkcs_save_private_key(char *filename, SilcPrivateKey private_key, 
-                              unsigned char *passphrase);
+                              unsigned char *passphrase,
+                              unsigned int encoding);
 int silc_pkcs_save_private_key_data(char *filename, unsigned char *data, 
                                    unsigned int data_len,
-                                   unsigned char *passphrase);
-int silc_pkcs_load_public_key(char *filename, SilcPublicKey *public_key);
-int silc_pkcs_load_private_key(char *filename, SilcPrivateKey *private_key);
+                                   unsigned char *passphrase,
+                                   unsigned int encoding);
+int silc_pkcs_load_public_key(char *filename, SilcPublicKey *public_key,
+                             unsigned int encoding);
+int silc_pkcs_load_private_key(char *filename, SilcPrivateKey *private_key,
+                              unsigned int encoding);
 
 #endif