1/* $OpenBSD: ssh-pkcs11.c,v 1.22 2016/02/12 00:20:30 djm Exp $ */ |
2/* 3 * Copyright (c) 2010 Markus Friedl. All rights reserved. 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 307 unchanged lines hidden (view full) --- 317 const RSA_METHOD *def = RSA_get_default_method(); 318 319 k11 = xcalloc(1, sizeof(*k11)); 320 k11->provider = provider; 321 provider->refcount++; /* provider referenced by RSA key */ 322 k11->slotidx = slotidx; 323 /* identify key object on smartcard */ 324 k11->keyid_len = keyid_attrib->ulValueLen; |
325 if (k11->keyid_len > 0) { 326 k11->keyid = xmalloc(k11->keyid_len); 327 memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); 328 } |
329 k11->orig_finish = def->finish; 330 memcpy(&k11->rsa_method, def, sizeof(k11->rsa_method)); 331 k11->rsa_method.name = "pkcs11"; 332 k11->rsa_method.rsa_priv_enc = pkcs11_rsa_private_encrypt; 333 k11->rsa_method.rsa_priv_dec = pkcs11_rsa_private_decrypt; 334 k11->rsa_method.finish = pkcs11_rsa_finish; 335 RSA_set_method(rsa, &k11->rsa_method); 336 RSA_set_app_data(rsa, k11); --- 359 unchanged lines hidden --- |