Lines Matching defs:sp

241 void pk11_return_session(PK11_SESSION *sp, PK11_OPTYPE optype);
249 int pk11_destroy_rsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock);
250 int pk11_destroy_rsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock);
254 int pk11_destroy_dsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock);
255 int pk11_destroy_dsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock);
265 static int pk11_setup_session(PK11_SESSION *sp, PK11_OPTYPE optype);
279 static int pk11_cipher_final(PK11_SESSION *sp);
288 const unsigned char *key, CK_KEY_TYPE key_type, PK11_SESSION *sp);
289 static int check_new_cipher_key(PK11_SESSION *sp, const unsigned char *key,
324 #define TRY_OBJ_DESTROY(sp, obj_hdl, retval, uselock, alg_type) \
329 retval = pk11_destroy_object((sp)->session, (obj_hdl), \
330 (sp)->persistent); \
406 PK11_SESSION *sp;
1389 PK11_SESSION *sp;
1391 if ((sp = pk11_get_session(OP_RAND)) == NULL) {
1399 pFuncList->C_SeedRandom(sp->session, (unsigned char *) buf, num);
1400 pk11_return_session(sp, OP_RAND);
1413 PK11_SESSION *sp;
1415 if ((sp = pk11_get_session(OP_RAND)) == NULL) {
1419 rv = pFuncList->C_GenerateRandom(sp->session, buf, num);
1422 pk11_return_session(sp, OP_RAND);
1426 pk11_return_session(sp, OP_RAND);
1439 pk11_free_nums(PK11_SESSION *sp, PK11_OPTYPE optype)
1444 if (sp->opdata_rsa_n_num != NULL) {
1445 BN_free(sp->opdata_rsa_n_num);
1446 sp->opdata_rsa_n_num = NULL;
1448 if (sp->opdata_rsa_e_num != NULL) {
1449 BN_free(sp->opdata_rsa_e_num);
1450 sp->opdata_rsa_e_num = NULL;
1452 if (sp->opdata_rsa_d_num != NULL) {
1453 BN_free(sp->opdata_rsa_d_num);
1454 sp->opdata_rsa_d_num = NULL;
1460 if (sp->opdata_dsa_pub_num != NULL) {
1461 BN_free(sp->opdata_dsa_pub_num);
1462 sp->opdata_dsa_pub_num = NULL;
1464 if (sp->opdata_dsa_priv_num != NULL) {
1465 BN_free(sp->opdata_dsa_priv_num);
1466 sp->opdata_dsa_priv_num = NULL;
1472 if (sp->opdata_dh_priv_num != NULL) {
1473 BN_free(sp->opdata_dh_priv_num);
1474 sp->opdata_dh_priv_num = NULL;
1492 PK11_SESSION *sp = NULL, *sp1, *freelist;
1523 sp = freelist;
1530 if (sp == NULL) {
1531 if ((sp = OPENSSL_malloc(sizeof (PK11_SESSION))) == NULL) {
1535 (void) memset(sp, 0, sizeof (PK11_SESSION));
1542 sp->opdata_rsa_priv_key = CK_INVALID_HANDLE;
1543 sp->opdata_rsa_pub_key = CK_INVALID_HANDLE;
1545 freelist = sp->next;
1557 * PK11_SESSION objects aside from the first session (sp) which
1581 OPENSSL_free(sp);
1582 sp = NULL;
1603 OPENSSL_free(sp);
1604 sp = NULL;
1612 if (pk11_setup_session(sp, optype) == 0) {
1613 OPENSSL_free(sp);
1614 sp = NULL;
1617 if (pk11_token_relogin(sp->session) == 0) {
1622 freelist = sp;
1623 sp = NULL;
1628 if (sp->pid == 0) {
1630 if (pk11_setup_session(sp, optype) == 0) {
1631 OPENSSL_free(sp);
1632 sp = NULL;
1640 if (sp != NULL) {
1641 sp->next = NULL;
1646 return (sp);
1651 pk11_return_session(PK11_SESSION *sp, PK11_OPTYPE optype)
1661 if (sp == NULL || sp->pid != getpid()) {
1681 sp->next = freelist;
1682 session_cache[optype].head = sp;
1727 PK11_SESSION *sp = NULL;
1750 while ((sp = freelist) != NULL) {
1751 if (sp->session != CK_INVALID_HANDLE && sp->pid == mypid) {
1752 rv = pFuncList->C_CloseSession(sp->session);
1759 freelist = sp->next;
1760 pk11_free_nums(sp, optype);
1761 OPENSSL_free(sp);
1770 pk11_setup_session(PK11_SESSION *sp, PK11_OPTYPE optype)
1794 sp->session = CK_INVALID_HANDLE;
1797 NULL_PTR, NULL_PTR, &sp->session);
1808 NULL_PTR, NULL_PTR, &sp->session);
1815 sp->pid = getpid();
1820 sp->opdata_rsa_pub_key = CK_INVALID_HANDLE;
1821 sp->opdata_rsa_priv_key = CK_INVALID_HANDLE;
1822 sp->opdata_rsa_pub = NULL;
1823 sp->opdata_rsa_n_num = NULL;
1824 sp->opdata_rsa_e_num = NULL;
1825 sp->opdata_rsa_priv = NULL;
1826 sp->opdata_rsa_d_num = NULL;
1831 sp->opdata_dsa_pub_key = CK_INVALID_HANDLE;
1832 sp->opdata_dsa_priv_key = CK_INVALID_HANDLE;
1833 sp->opdata_dsa_pub = NULL;
1834 sp->opdata_dsa_pub_num = NULL;
1835 sp->opdata_dsa_priv = NULL;
1836 sp->opdata_dsa_priv_num = NULL;
1841 sp->opdata_dh_key = CK_INVALID_HANDLE;
1842 sp->opdata_dh = NULL;
1843 sp->opdata_dh_priv_num = NULL;
1847 sp->opdata_cipher_key = CK_INVALID_HANDLE;
1848 sp->opdata_encrypt = -1;
1856 sp->persistent = CK_FALSE;
1868 destroy_all_rsa_params(PK11_SESSION *sp)
1870 if (sp->opdata_rsa_n_num != NULL) {
1871 BN_free(sp->opdata_rsa_n_num);
1872 sp->opdata_rsa_n_num = NULL;
1874 if (sp->opdata_rsa_e_num != NULL) {
1875 BN_free(sp->opdata_rsa_e_num);
1876 sp->opdata_rsa_e_num = NULL;
1878 if (sp->opdata_rsa_d_num != NULL) {
1879 BN_free(sp->opdata_rsa_d_num);
1880 sp->opdata_rsa_d_num = NULL;
1886 pk11_destroy_rsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock)
1890 if (sp->opdata_rsa_pub_key != CK_INVALID_HANDLE) {
1891 TRY_OBJ_DESTROY(sp, sp->opdata_rsa_pub_key,
1893 sp->opdata_rsa_pub_key = CK_INVALID_HANDLE;
1894 sp->opdata_rsa_pub = NULL;
1895 destroy_all_rsa_params(sp);
1903 pk11_destroy_rsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock)
1907 if (sp->opdata_rsa_priv_key != CK_INVALID_HANDLE) {
1908 TRY_OBJ_DESTROY(sp, sp->opdata_rsa_priv_key,
1910 sp->opdata_rsa_priv_key = CK_INVALID_HANDLE;
1911 sp->opdata_rsa_priv = NULL;
1912 destroy_all_rsa_params(sp);
1926 PK11_SESSION *sp = NULL;
1941 while ((sp = local_free_session) != NULL) {
1942 local_free_session = sp->next;
1948 if (pk11_destroy_rsa_object_pub(sp, uselock) == 0) {
1952 if (pk11_destroy_rsa_object_priv(sp, uselock) == 0) {
1969 pk11_destroy_dsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock)
1973 if (sp->opdata_dsa_pub_key != CK_INVALID_HANDLE) {
1974 TRY_OBJ_DESTROY(sp, sp->opdata_dsa_pub_key,
1976 sp->opdata_dsa_pub_key = CK_INVALID_HANDLE;
1977 sp->opdata_dsa_pub = NULL;
1978 if (sp->opdata_dsa_pub_num != NULL) {
1979 BN_free(sp->opdata_dsa_pub_num);
1980 sp->opdata_dsa_pub_num = NULL;
1989 pk11_destroy_dsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock)
1993 if (sp->opdata_dsa_priv_key != CK_INVALID_HANDLE) {
1994 TRY_OBJ_DESTROY(sp, sp->opdata_dsa_priv_key,
1996 sp->opdata_dsa_priv_key = CK_INVALID_HANDLE;
1997 sp->opdata_dsa_priv = NULL;
1998 if (sp->opdata_dsa_priv_num != NULL) {
1999 BN_free(sp->opdata_dsa_priv_num);
2000 sp->opdata_dsa_priv_num = NULL;
2015 PK11_SESSION *sp = NULL;
2030 while ((sp = local_free_session) != NULL) {
2031 local_free_session = sp->next;
2037 if (pk11_destroy_dsa_object_pub(sp, uselock) == 0) {
2041 if (pk11_destroy_dsa_object_priv(sp, uselock) == 0) {
2058 pk11_destroy_dh_object(PK11_SESSION *sp, CK_BBOOL uselock)
2062 if (sp->opdata_dh_key != CK_INVALID_HANDLE) {
2063 TRY_OBJ_DESTROY(sp, sp->opdata_dh_key,
2065 sp->opdata_dh_key = CK_INVALID_HANDLE;
2066 sp->opdata_dh = NULL;
2067 if (sp->opdata_dh_priv_num != NULL) {
2068 BN_free(sp->opdata_dh_priv_num);
2069 sp->opdata_dh_priv_num = NULL;
2086 PK11_SESSION *sp = NULL;
2098 while ((sp = local_free_session) != NULL) {
2099 local_free_session = sp->next;
2105 if (pk11_destroy_dh_object(sp, uselock) == 0) {
2185 PK11_SESSION *sp, CK_MECHANISM_PTR pmech)
2224 rv = pFuncList->C_EncryptInit(sp->session, pmech,
2225 sp->opdata_cipher_key);
2227 rv = pFuncList->C_DecryptInit(sp->session, pmech,
2228 sp->opdata_cipher_key);
2233 pk11_return_session(sp, OP_CIPHER);
2248 PK11_SESSION *sp;
2251 state->sp = NULL;
2280 if ((sp = pk11_get_session(OP_CIPHER)) == NULL) {
2290 (void) check_new_cipher_key(sp, key, ctx->key_len);
2297 if (sp->opdata_cipher_key != CK_INVALID_HANDLE &&
2298 sp->opdata_encrypt == ctx->encrypt) {
2299 state->sp = sp;
2300 if (pk11_init_symmetric(ctx, p_ciph_table_row, sp,
2312 if (sp->opdata_cipher_key == CK_INVALID_HANDLE) {
2313 sp->opdata_cipher_key = pk11_get_cipher_key(
2314 ctx, key, p_ciph_table_row->key_type, sp);
2317 if (sp->opdata_encrypt != ctx->encrypt && sp->opdata_encrypt != -1) {
2322 if (!pk11_cipher_final(sp)) {
2323 pk11_return_session(sp, OP_CIPHER);
2328 if (sp->opdata_cipher_key == CK_INVALID_HANDLE) {
2329 pk11_return_session(sp, OP_CIPHER);
2334 if (pk11_init_symmetric(ctx, p_ciph_table_row, sp, &mech) == 0) {
2338 sp->opdata_encrypt = ctx->encrypt;
2339 state->sp = sp;
2358 pk11_cipher_final(PK11_SESSION *sp)
2362 rv = pFuncList->C_CloseSession(sp->session);
2369 NULL_PTR, NULL_PTR, &sp->session);
2387 PK11_SESSION *sp;
2391 if (state == NULL || state->sp == NULL) {
2395 sp = (PK11_SESSION *) state->sp;
2408 rv = pFuncList->C_EncryptUpdate(sp->session,
2416 rv = pFuncList->C_DecryptUpdate(sp->session,
2456 if (state != NULL && state->sp != NULL) {
2463 state->sp->session, buf, &len);
2466 state->sp->session, buf, &len);
2472 pk11_return_session(state->sp, OP_CIPHER);
2476 pk11_return_session(state->sp, OP_CIPHER);
2477 state->sp = NULL;
2598 const unsigned char *key, CK_KEY_TYPE key_type, PK11_SESSION *sp)
2645 sp->opdata_key_len = ctx->key_len > PK11_KEY_LEN_MAX ?
2647 (void) memcpy(sp->opdata_key, key, sp->opdata_key_len);
2672 PK11_SESSION *sp;
2676 state->sp = NULL;
2684 if ((sp = pk11_get_session(OP_DIGEST)) == NULL) {
2693 rv = pFuncList->C_DigestInit(sp->session, &mech);
2696 pk11_return_session(sp, OP_DIGEST);
2700 state->sp = sp;
2716 if (state == NULL || state->sp == NULL) {
2720 rv = pFuncList->C_DigestUpdate(state->sp->session, (CK_BYTE *) data,
2724 pk11_return_session(state->sp, OP_DIGEST);
2725 state->sp = NULL;
2740 if (state == NULL || state->sp == NULL) {
2744 rv = pFuncList->C_DigestFinal(state->sp->session, md, &len);
2747 pk11_return_session(state->sp, OP_DIGEST);
2748 state->sp = NULL;
2760 pk11_return_session(state->sp, OP_DIGEST);
2761 state->sp = NULL;
2781 if (state->sp == NULL) {
2792 rv = pFuncList->C_GetOperationState(state->sp->session, NULL,
2810 rv = pFuncList->C_GetOperationState(state->sp->session, pstate,
2819 rv = pFuncList->C_SetOperationState(state_to->sp->session, pstate,
2843 if (state != NULL && state->sp != NULL) {
2845 * If state->sp is not NULL then pk11_digest_final() has not
2868 check_new_cipher_key(PK11_SESSION *sp, const unsigned char *key,
2871 if (sp->opdata_key_len != key_len ||
2872 memcmp(sp->opdata_key, key, key_len) != 0) {
2873 (void) pk11_destroy_cipher_key_objects(sp);
2884 PK11_SESSION *sp = NULL;
2894 while ((sp = local_free_session) != NULL) {
2895 local_free_session = sp->next;
2897 if (sp->opdata_cipher_key != CK_INVALID_HANDLE) {
2903 sp->opdata_cipher_key, CK_FALSE) == 0) {
2906 sp->opdata_cipher_key = CK_INVALID_HANDLE;