|
libp11
0.2.8
|
libp11 header file More...
#include <openssl/bio.h>#include <openssl/err.h>#include <openssl/x509.h>Go to the source code of this file.
Data Structures | |
| struct | PKCS11_key_st |
| PKCS11 key object (public or private) More... | |
| struct | PKCS11_cert_st |
| PKCS11 certificate object. More... | |
| struct | PKCS11_token_st |
| PKCS11 token: smart card or USB key. More... | |
| struct | PKCS11_slot_st |
| PKCS11 slot: card reader. More... | |
| struct | PKCS11_ctx_st |
| PKCS11 context. More... | |
Typedefs | |
| typedef struct PKCS11_key_st | PKCS11_KEY |
| PKCS11 key object (public or private) | |
| typedef struct PKCS11_cert_st | PKCS11_CERT |
| PKCS11 certificate object. | |
| typedef struct PKCS11_token_st | PKCS11_TOKEN |
| PKCS11 token: smart card or USB key. | |
| typedef struct PKCS11_slot_st | PKCS11_SLOT |
| PKCS11 slot: card reader. | |
| typedef struct PKCS11_ctx_st | PKCS11_CTX |
| PKCS11 context. | |
Functions | |
| PKCS11_CTX * | PKCS11_CTX_new (void) |
| Create a new libp11 context. | |
| void | PKCS11_CTX_init_args (PKCS11_CTX *ctx, const char *init_args) |
| Specify any private PKCS#11 module initializtion args, if necessary. | |
| int | PKCS11_CTX_load (PKCS11_CTX *ctx, const char *ident) |
| Load a PKCS#11 module. | |
| void | PKCS11_CTX_unload (PKCS11_CTX *ctx) |
| Unload a PKCS#11 module. | |
| void | PKCS11_CTX_free (PKCS11_CTX *ctx) |
| Free a libp11 context. | |
| int | PKCS11_open_session (PKCS11_SLOT *slot, int rw) |
| Open a session in RO or RW mode. | |
| int | PKCS11_enumerate_slots (PKCS11_CTX *ctx, PKCS11_SLOT **slotsp, unsigned int *nslotsp) |
| Get a list of all slots. | |
| unsigned long | PKCS11_get_slotid_from_slot (PKCS11_SLOT *slotp) |
| Get the slot_id from a slot as it is stored in private. | |
| void | PKCS11_release_all_slots (PKCS11_CTX *ctx, PKCS11_SLOT *slots, unsigned int nslots) |
| Free the list of slots allocated by PKCS11_enumerate_slots() | |
| PKCS11_SLOT * | PKCS11_find_token (PKCS11_CTX *ctx, PKCS11_SLOT *slots, unsigned int nslots) |
| Find the first slot with a token. | |
| int | PKCS11_login (PKCS11_SLOT *slot, int so, const char *pin) |
| Authenticate to the card. | |
| int | PKCS11_logout (PKCS11_SLOT *slot) |
| De-authenticate from the card. | |
| int | PKCS11_enumerate_keys (PKCS11_TOKEN *, PKCS11_KEY **, unsigned int *) |
| int | PKCS11_get_key_type (PKCS11_KEY *) |
| int | PKCS11_get_key_size (const PKCS11_KEY *) |
| int | PKCS11_get_key_modulus (PKCS11_KEY *, BIGNUM **) |
| int | PKCS11_get_key_exponent (PKCS11_KEY *, BIGNUM **) |
| EVP_PKEY * | PKCS11_get_private_key (PKCS11_KEY *key) |
| Returns a EVP_PKEY object for the private key. | |
| EVP_PKEY * | PKCS11_get_public_key (PKCS11_KEY *key) |
| Returns a EVP_PKEY object with the public key. | |
| PKCS11_CERT * | PKCS11_find_certificate (PKCS11_KEY *) |
| PKCS11_KEY * | PKCS11_find_key (PKCS11_CERT *) |
| int | PKCS11_enumerate_certs (PKCS11_TOKEN *, PKCS11_CERT **, unsigned int *) |
| int | PKCS11_init_token (PKCS11_TOKEN *token, const char *pin, const char *label) |
| Initialize a token. | |
| int | PKCS11_init_pin (PKCS11_TOKEN *token, const char *pin) |
| Initialize the user PIN on a token. | |
| int | PKCS11_change_pin (PKCS11_SLOT *slot, const char *old_pin, const char *new_pin) |
| Change the user PIN on a token. | |
| int | PKCS11_generate_key (PKCS11_TOKEN *token, int algorithm, unsigned int bits, char *label, unsigned char *id, size_t id_len) |
| Generate and store a private key on the token. | |
| int | PKCS11_store_private_key (PKCS11_TOKEN *token, EVP_PKEY *pk, char *label, unsigned char *id, size_t id_len) |
| Store private key on a token. | |
| int | PKCS11_store_public_key (PKCS11_TOKEN *token, EVP_PKEY *pk, char *label, unsigned char *id, size_t id_len) |
| Store public key on a token. | |
| int | PKCS11_store_certificate (PKCS11_TOKEN *token, X509 *x509, char *label, unsigned char *id, size_t id_len, PKCS11_CERT **ret_cert) |
| Store certificate on a token. | |
| int | PKCS11_sign (int type, const unsigned char *m, unsigned int m_len, unsigned char *sigret, unsigned int *siglen, const PKCS11_KEY *key) |
| int | PKCS11_private_encrypt (int flen, const unsigned char *from, unsigned char *to, const PKCS11_KEY *rsa, int padding) |
| int | PKCS11_private_decrypt (int flen, const unsigned char *from, unsigned char *to, PKCS11_KEY *key, int padding) |
| Decrypts data using the private key. | |
| int | PKCS11_verify (int type, const unsigned char *m, unsigned int m_len, unsigned char *signature, unsigned int siglen, PKCS11_KEY *key) |
| int | PKCS11_seed_random (PKCS11_SLOT *, const unsigned char *s, unsigned int s_len) |
| int | PKCS11_generate_random (PKCS11_SLOT *, unsigned char *r, unsigned int r_len) |
| RSA_METHOD * | PKCS11_get_rsa_method (void) |
| void | ERR_load_PKCS11_strings (void) |
| Load PKCS11 error strings. | |
libp11 header file
Definition in file libp11.h.
| void ERR_load_PKCS11_strings | ( | void | ) |
Load PKCS11 error strings.
Call this function to be able to use ERR_reason_error_string(ERR_get_error()) to get an textual version of the latest error code
| int PKCS11_change_pin | ( | PKCS11_SLOT * | slot, |
| const char * | old_pin, | ||
| const char * | new_pin | ||
| ) |
Change the user PIN on a token.
| slot | slot returned by PKCS11_find_token() |
| old_pin | old PIN value |
| new_pin | new PIN value |
| 0 | success |
| -1 | error |
| void PKCS11_CTX_free | ( | PKCS11_CTX * | ctx | ) |
Free a libp11 context.
| ctx | context allocated by PKCS11_CTX_new() |
| void PKCS11_CTX_init_args | ( | PKCS11_CTX * | ctx, |
| const char * | init_args | ||
| ) |
Specify any private PKCS#11 module initializtion args, if necessary.
| int PKCS11_CTX_load | ( | PKCS11_CTX * | ctx, |
| const char * | ident | ||
| ) |
Load a PKCS#11 module.
| ctx | context allocated by PKCS11_CTX_new() |
| ident | PKCS#11 library filename |
| 0 | success |
| -1 | error |
| PKCS11_CTX* PKCS11_CTX_new | ( | void | ) |
Create a new libp11 context.
This should be the first function called in the use of libp11
| void PKCS11_CTX_unload | ( | PKCS11_CTX * | ctx | ) |
Unload a PKCS#11 module.
| ctx | context allocated by PKCS11_CTX_new() |
| int PKCS11_enumerate_slots | ( | PKCS11_CTX * | ctx, |
| PKCS11_SLOT ** | slotsp, | ||
| unsigned int * | nslotsp | ||
| ) |
Get a list of all slots.
| ctx | context allocated by PKCS11_CTX_new() |
| slotsp | pointer on a list of slots |
| nslotsp | size of the allocated list |
| 0 | success |
| -1 | error |
| PKCS11_SLOT* PKCS11_find_token | ( | PKCS11_CTX * | ctx, |
| PKCS11_SLOT * | slots, | ||
| unsigned int | nslots | ||
| ) |
Find the first slot with a token.
| ctx | context allocated by PKCS11_CTX_new() |
| slots | list of slots allocated by PKCS11_enumerate_slots() |
| nslots | size of the list |
| !=NULL | pointer on a slot structure |
| NULL | error |
| int PKCS11_generate_key | ( | PKCS11_TOKEN * | token, |
| int | algorithm, | ||
| unsigned int | bits, | ||
| char * | label, | ||
| unsigned char * | id, | ||
| size_t | id_len | ||
| ) |
Generate and store a private key on the token.
| token | token returned by PKCS11_find_token() |
| algorithm | EVP_PKEY_RSA |
| bits | size of the modulus in bits |
| label | label for this key |
| id | bytes to use as id value |
| id_len | length of id value. |
| 0 | success |
| -1 | error |
| EVP_PKEY* PKCS11_get_private_key | ( | PKCS11_KEY * | key | ) |
Returns a EVP_PKEY object for the private key.
| key | PKCS11_KEY object |
| !=NULL | reference to EVP_PKEY object. The returned EVP_PKEY object should be treated as const and must not be freed. |
| NULL | error |
| EVP_PKEY* PKCS11_get_public_key | ( | PKCS11_KEY * | key | ) |
Returns a EVP_PKEY object with the public key.
| key | PKCS11_KEY object |
| !=NULL | reference to EVP_PKEY object. The returned EVP_PKEY object should be treated as const and must not be freed. |
| NULL | error |
| unsigned long PKCS11_get_slotid_from_slot | ( | PKCS11_SLOT * | slotp | ) |
Get the slot_id from a slot as it is stored in private.
| slotp | pointer on a slot |
| the | slotid |
| int PKCS11_init_pin | ( | PKCS11_TOKEN * | token, |
| const char * | pin | ||
| ) |
Initialize the user PIN on a token.
| token | token descriptor (in general slot->token) |
| pin | new user PIN value |
| 0 | success |
| -1 | error |
| int PKCS11_init_token | ( | PKCS11_TOKEN * | token, |
| const char * | pin, | ||
| const char * | label | ||
| ) |
Initialize a token.
| token | token descriptor (in general slot->token) |
| pin | Security Officer PIN value |
| label | new name of the token |
| 0 | success |
| -1 | error |
| int PKCS11_login | ( | PKCS11_SLOT * | slot, |
| int | so, | ||
| const char * | pin | ||
| ) |
Authenticate to the card.
| slot | slot returned by PKCS11_find_token() |
| so | login as CKU_SO if != 0, otherwise login as CKU_USER |
| pin | PIN value |
| 0 | success |
| -1 | error |
| int PKCS11_logout | ( | PKCS11_SLOT * | slot | ) |
De-authenticate from the card.
| slot | slot returned by PKCS11_find_token() |
| 0 | success |
| -1 | error |
| int PKCS11_open_session | ( | PKCS11_SLOT * | slot, |
| int | rw | ||
| ) |
Open a session in RO or RW mode.
| slot | slot descriptor returned by PKCS11_find_token() or PKCS11_enumerate_slots() |
| rw | open in read/write mode is mode != 0, otherwise in read only mode |
| 0 | success |
| -1 | error |
| int PKCS11_private_decrypt | ( | int | flen, |
| const unsigned char * | from, | ||
| unsigned char * | to, | ||
| PKCS11_KEY * | key, | ||
| int | padding | ||
| ) |
Decrypts data using the private key.
| flen | length of the encrypted data |
| from | encrypted data |
| to | output buffer (MUST be a least flen bytes long) |
| key | private key object |
| padding | padding algorithm to be used |
| void PKCS11_release_all_slots | ( | PKCS11_CTX * | ctx, |
| PKCS11_SLOT * | slots, | ||
| unsigned int | nslots | ||
| ) |
Free the list of slots allocated by PKCS11_enumerate_slots()
| ctx | context allocated by PKCS11_CTX_new() |
| slots | list of slots allocated by PKCS11_enumerate_slots() |
| nslots | size of the list |
| int PKCS11_store_certificate | ( | PKCS11_TOKEN * | token, |
| X509 * | x509, | ||
| char * | label, | ||
| unsigned char * | id, | ||
| size_t | id_len, | ||
| PKCS11_CERT ** | ret_cert | ||
| ) |
Store certificate on a token.
| token | token returned by PKCS11_find_token() |
| x509 | x509 certificate object |
| label | label for this certificate |
| id | bytes to use as id value |
| id_len | length of id value. |
| ret_cert | put new PKCS11_CERT object here |
| 0 | success |
| -1 | error |
| int PKCS11_store_private_key | ( | PKCS11_TOKEN * | token, |
| EVP_PKEY * | pk, | ||
| char * | label, | ||
| unsigned char * | id, | ||
| size_t | id_len | ||
| ) |
Store private key on a token.
| token | token returned by PKCS11_find_token() |
| pk | private key |
| label | label for this key |
| id | bytes to use as id value |
| id_len | length of id value. |
| 0 | success |
| -1 | error |
| int PKCS11_store_public_key | ( | PKCS11_TOKEN * | token, |
| EVP_PKEY * | pk, | ||
| char * | label, | ||
| unsigned char * | id, | ||
| size_t | id_len | ||
| ) |
Store public key on a token.
| token | token returned by PKCS11_find_token() |
| pk | private key |
| label | label for this key |
| id | bytes to use as id value |
| id_len | length of id value. |
| 0 | success |
| -1 | error |
| libp11, Copyright (C) 2005 Olaf Kirch <okir@lst.de> | ![]() |