Annotation of embedaddon/strongswan/src/libstrongswan/plugins/pkcs11/pkcs11_private_key.h, revision 1.1
1.1 ! misho 1: /*
! 2: * Copyright (C) 2011 Tobias Brunner
! 3: * HSR Hochschule fuer Technik Rapperswil
! 4: *
! 5: * Copyright (C) 2010 Martin Willi
! 6: * Copyright (C) 2010 revosec AG
! 7: *
! 8: * This program is free software; you can redistribute it and/or modify it
! 9: * under the terms of the GNU General Public License as published by the
! 10: * Free Software Foundation; either version 2 of the License, or (at your
! 11: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
! 12: *
! 13: * This program is distributed in the hope that it will be useful, but
! 14: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
! 15: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
! 16: * for more details.
! 17: */
! 18:
! 19: /**
! 20: * @defgroup pkcs11_private_key pkcs11_private_key
! 21: * @{ @ingroup pkcs11
! 22: */
! 23:
! 24: #ifndef PKCS11_PRIVATE_KEY_H_
! 25: #define PKCS11_PRIVATE_KEY_H_
! 26:
! 27: typedef struct pkcs11_private_key_t pkcs11_private_key_t;
! 28:
! 29: #include <credentials/builder.h>
! 30: #include <credentials/keys/private_key.h>
! 31:
! 32: #include "pkcs11.h"
! 33:
! 34: /**
! 35: * Private Key implementation on top of PKCS#11.
! 36: */
! 37: struct pkcs11_private_key_t {
! 38:
! 39: /**
! 40: * Implements private_key_t interface.
! 41: */
! 42: private_key_t key;
! 43: };
! 44:
! 45: /**
! 46: * Open a private key on a PKCS#11 device.
! 47: *
! 48: * Accepts the BUILD_SMARTCARD_KEYID and the BUILD_SMARTCARD_PIN arguments.
! 49: *
! 50: * @param type type of the key
! 51: * @param args builder_part_t argument list
! 52: * @return loaded key, NULL on failure
! 53: */
! 54: pkcs11_private_key_t *pkcs11_private_key_connect(key_type_t type, va_list args);
! 55:
! 56: /**
! 57: * Get the Cryptoki mechanism for a signature scheme.
! 58: *
! 59: * Verifies that the given key is usable for this scheme.
! 60: *
! 61: * @param scheme signature scheme
! 62: * @param type key type
! 63: * @param keylen key length in bits
! 64: * @param hash hash algorithm to apply first (HASH_UNKNOWN if none)
! 65: */
! 66: CK_MECHANISM_PTR pkcs11_signature_scheme_to_mech(signature_scheme_t scheme,
! 67: key_type_t type, size_t keylen,
! 68: hash_algorithm_t *hash);
! 69:
! 70: /**
! 71: * Get the Cryptoki mechanism for a encryption scheme.
! 72: */
! 73: CK_MECHANISM_PTR pkcs11_encryption_scheme_to_mech(encryption_scheme_t scheme);
! 74:
! 75: #endif /** PKCS11_PRIVATE_KEY_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>