diff options
author | Martin Willi <martin@strongswan.org> | 2009-08-24 14:04:23 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-08-26 11:23:52 +0200 |
commit | 1384a42e1b212ed8dd56112a151e0efde45c06e4 (patch) | |
tree | 36417f053f0edfb00b71e35330a88ce55c58b0ed /src | |
parent | 1ef69b01abd50fa3ca3a88ad76b87cf7386c6e78 (diff) | |
download | strongswan-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.h | 34 | ||||
-rw-r--r-- | src/libstrongswan/credentials/keys/public_key.h | 25 |
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. |