Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2006 Pekka Riikonen
+ Copyright (C) 1997 - 2007 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
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcPublicKeyIdentifierObject {
char *username;
char *host;
char *realname;
char *email;
char *org;
char *country;
+ char *version;
} *SilcPublicKeyIdentifier, SilcPublicKeyIdentifierStruct;
/***/
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcSILCPublicKeyStruct {
SilcPublicKeyIdentifierStruct identifier;
const SilcPKCSAlgorithm *pkcs; /* PKCS algorithm */
void *public_key; /* PKCS algorithm specific public key */
*
* SOURCE
*/
-typedef struct {
+typedef struct SilcSILCPrivateKeyStruct {
const SilcPKCSAlgorithm *pkcs; /* PKCS algorithm */
void *private_key; /* PKCS algorithm specific private key */
} *SilcSILCPrivateKey;
* SYNOPSIS
*
* SilcBool silc_pkcs_silc_generate_key(const char *algorithm,
- * const char *scheme,
* SilcUInt32 bits_key_len,
* const char *identifier,
* SilcRng rng,
*
* EXAMPLE
*
- * // Generate RSA key pair with 2048 bit key length, using PKCS #1
- * // no OID scheme.
- * silc_pkcs_silc_generate_key("rsa", "pkcs1-no-oid", 2048,
- * rng, &public_key, &private_key);
+ * // Generate RSA key pair with 2048 bit key length
+ * silc_pkcs_silc_generate_key("rsa", 2048, ident_string, rng,
+ * &public_key, &private_key);
*
***/
SilcBool silc_pkcs_silc_generate_key(const char *algorithm,
- const char *scheme,
SilcUInt32 bits_key_len,
const char *identifier,
SilcRng rng,
SilcPublicKey *ret_public_key,
SilcPrivateKey *ret_private_key);
-/****f* silccrypt/SilcPubkeyAPI/silc_pkcs_silc_decode_identifier
+/****f* silccrypt/SilcPubkeyAPI/silc_pkcs_silc_encode_identifier
*
* SYNOPSIS
*
* char *silc_pkcs_silc_encode_identifier(char *username, char *host,
* char *realname, char *email,
- * char *org, char *country)
+ * char *org, char *country,
+ * char *version);
*
* DESCRIPTION
*
***/
char *silc_pkcs_silc_encode_identifier(char *username, char *host,
char *realname, char *email,
- char *org, char *country);
+ char *org, char *country,
+ char *version);
/****f* silccrypt/SilcPubkeyAPI/silc_pkcs_silc_decode_identifier
*
SilcBool silc_pkcs_silc_decode_identifier(const char *identifier,
SilcPublicKeyIdentifier ident);
+/****f* silccrypt/SilcPubkeyAPI/silc_pkcs_silc_public_key_version
+ *
+ * SYNOPSIS
+ *
+ * int silc_pkcs_silc_public_key_version(SilcPublicKey public_key);
+ *
+ * DESCRIPTION
+ *
+ * Returns the verison of the SILC Public Key indicated by `public_key'.
+ * Returns -1 if the `public_key' is not a SILC Public Key and the
+ * version number otherwise.
+ *
+ ***/
+int silc_pkcs_silc_public_key_version(SilcPublicKey public_key);
+
#endif /* SILCPK_H */