Lines Matching defs:key
24 #include "key.h"
34 * Create a new key container
36 int key_new(key_t *key)
38 /* Create key pair container */
39 key->key = EVP_PKEY_new();
40 if (key->key == NULL) {
48 static int key_create_rsa(key_t *key, int key_bits)
53 printf("Cannot generate RSA key\n");
56 key->key = rsa;
75 printf("Cannot create RSA key\n");
80 printf("Cannot generate RSA key\n");
84 if (!EVP_PKEY_assign_RSA(key->key, rsa)) {
85 printf("Cannot assign RSA key\n");
102 static int key_create_ecdsa(key_t *key, int key_bits, const char *curve)
106 printf("Cannot generate EC key\n");
110 key->key = ec;
114 static int key_create_ecdsa_nist(key_t *key, int key_bits)
117 return key_create_ecdsa(key, key_bits, "secp384r1");
120 return key_create_ecdsa(key, key_bits, "prime256v1");
124 static int key_create_ecdsa_brainpool_r(key_t *key, int key_bits)
126 return key_create_ecdsa(key, key_bits, "brainpoolP256r1");
129 static int key_create_ecdsa_brainpool_t(key_t *key, int key_bits)
131 return key_create_ecdsa(key, key_bits, "brainpoolP256t1");
134 static int key_create_ecdsa(key_t *key, int key_bits, const int curve_id)
140 printf("Cannot create EC key\n");
144 printf("Cannot generate EC key\n");
149 if (!EVP_PKEY_assign_EC_KEY(key->key, ec)) {
150 printf("Cannot assign EC key\n");
161 static int key_create_ecdsa_nist(key_t *key, int key_bits)
164 return key_create_ecdsa(key, key_bits, NID_secp384r1);
167 return key_create_ecdsa(key, key_bits, NID_X9_62_prime256v1);
171 static int key_create_ecdsa_brainpool_r(key_t *key, int key_bits)
173 return key_create_ecdsa(key, key_bits, NID_brainpoolP256r1);
176 static int key_create_ecdsa_brainpool_t(key_t *key, int key_bits)
178 return key_create_ecdsa(key, key_bits, NID_brainpoolP256t1);
183 typedef int (*key_create_fn_t)(key_t *key, int key_bits);
193 int key_create(key_t *key, int type, int key_bits)
196 printf("Invalid key type\n");
201 return key_create_fn[type](key, key_bits);
242 unsigned int key_load(key_t *key)
244 if (key->fn == NULL) {
249 if (strncmp(key->fn, "pkcs11:", 7) == 0) {
250 /* Load key through pkcs11 */
251 key->key = key_load_pkcs11(key->fn);
253 /* Load key from file */
254 FILE *fp = fopen(key->fn, "r");
256 WARN("Cannot open file %s\n", key->fn);
260 key->key = PEM_read_PrivateKey(fp, NULL, NULL, NULL);
264 if (key->key == NULL) {
265 ERROR("Cannot load key from %s\n", key->fn);
272 int key_store(key_t *key)
276 if (key->fn) {
277 if (!strncmp(key->fn, "pkcs11:", 7)) {
281 fp = fopen(key->fn, "w");
283 PEM_write_PrivateKey(fp, key->key,
288 ERROR("Cannot create file %s\n", key->fn);
300 key_t *key;
326 key = &keys[i];
327 if (key->opt != NULL) {
328 cmd_opt.long_opt.name = key->opt;
332 cmd_opt.help_msg = key->help_msg;
342 key_t *key;
348 key = &keys[i];
349 if (0 == strcmp(key->opt, opt)) {
350 return key;
362 EVP_PKEY_free(keys[i].key);