aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-08-24 14:04:23 +0200
committerMartin Willi <martin@strongswan.org>2009-08-26 11:23:52 +0200
commit1384a42e1b212ed8dd56112a151e0efde45c06e4 (patch)
tree36417f053f0edfb00b71e35330a88ce55c58b0ed /src
parent1ef69b01abd50fa3ca3a88ad76b87cf7386c6e78 (diff)
downloadstrongswan-1384a42e1b212ed8dd56112a151e0efde45c06e4.tar.bz2
strongswan-1384a42e1b212ed8dd56112a151e0efde45c06e4.tar.xz
changed get_id/get_encoding API of private/public key to use new encoding framework
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/credentials/keys/private_key.h34
-rw-r--r--src/libstrongswan/credentials/keys/public_key.h25
2 files changed, 32 insertions, 27 deletions
diff --git a/src/libstrongswan/credentials/keys/private_key.h b/src/libstrongswan/credentials/keys/private_key.h
index bbc77a8dc..3bea9c244 100644
--- a/src/libstrongswan/credentials/keys/private_key.h
+++ b/src/libstrongswan/credentials/keys/private_key.h
@@ -23,21 +23,20 @@
typedef struct private_key_t private_key_t;
-#include <utils/identification.h>
#include <credentials/keys/public_key.h>
/**
* Abstract private key interface.
*/
struct private_key_t {
-
+
/**
* Get the key type.
*
* @return type of the key
*/
key_type_t (*get_type)(private_key_t *this);
-
+
/**
* Create a signature over a chunk of data.
*
@@ -63,14 +62,6 @@ struct private_key_t {
* @return strength of the key in bytes
*/
size_t (*get_keysize) (private_key_t *this);
-
- /**
- * Get a unique key identifier, such as a hash over the public key.
- *
- * @param type type of the key ID to get
- * @return unique ID of the key as identification_t, or NULL
- */
- identification_t* (*get_id) (private_key_t *this, id_type_t type);
/**
* Get the public part from the private key.
@@ -86,7 +77,7 @@ struct private_key_t {
* @return TRUE, if equality
*/
bool (*equals) (private_key_t *this, private_key_t *other);
-
+
/**
* Check if a private key belongs to a public key.
*
@@ -96,13 +87,24 @@ struct private_key_t {
bool (*belongs_to) (private_key_t *this, public_key_t *public);
/**
- * Get an encoded form of the private key.
+ * Get the fingerprint of the key.
*
- * @todo Do we need a encoding type specification?
+ * @param type type of fingerprint, one of KEY_ID_*
+ * @param fp fingerprint, points to internal data
+ * @return TRUE if fingerprint type supported
+ */
+ bool (*get_fingerprint)(private_key_t *this, key_encoding_type_t type,
+ chunk_t *fp);
+
+ /**
+ * Get the key in an encoded form as a chunk.
*
- * @return allocated chunk containing encoded private key
+ * @param type type of the encoding, one of KEY_PRIV_*
+ * @param encoding encoding of the key, allocated
+ * @return TRUE if encoding supported
*/
- chunk_t (*get_encoding)(private_key_t *this);
+ bool (*get_encoding)(private_key_t *this, key_encoding_type_t type,
+ chunk_t *encoding);
/**
* Increase the refcount to this private key.
diff --git a/src/libstrongswan/credentials/keys/public_key.h b/src/libstrongswan/credentials/keys/public_key.h
index 6cab37d2d..294a9568a 100644
--- a/src/libstrongswan/credentials/keys/public_key.h
+++ b/src/libstrongswan/credentials/keys/public_key.h
@@ -137,23 +137,26 @@ struct public_key_t {
* @return strength of the key in bytes
*/
size_t (*get_keysize) (public_key_t *this);
-
+
/**
- * Get a unique key identifier, such as a hash over the key.
- *
- * @param type type of the key ID to get
- * @return unique ID of the key as identification_t, or NULL
+ * Get the fingerprint of the key.
+ *
+ * @param type type of fingerprint, one of KEY_ID_*
+ * @param fp fingerprint, points to internal data
+ * @return TRUE if fingerprint type supported
*/
- identification_t* (*get_id) (public_key_t *this, id_type_t type);
+ bool (*get_fingerprint)(public_key_t *this, key_encoding_type_t type,
+ chunk_t *fp);
/**
- * Get an encoded form of the key.
- *
- * @todo Do we need a encoding type specification?
+ * Get the key in an encoded form as a chunk.
*
- * @return allocated chunk containing encoded key
+ * @param type type of the encoding, one of KEY_PRIV_*
+ * @param encoding encoding of the key, allocated
+ * @return TRUE if encoding supported
*/
- chunk_t (*get_encoding)(public_key_t *this);
+ bool (*get_encoding)(public_key_t *this, key_encoding_type_t type,
+ chunk_t *encoding);
/**
* Increase the refcount of the key.