Print this page
9642 PKCS#11 softtoken should use explicit_bzero
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Alex Wilson <alex.wilson@joyent.com>

*** 20,29 **** --- 20,30 ---- */ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2018, Joyent, Inc. */ #include <stdlib.h> #include <strings.h> #include <sys/types.h>
*** 560,592 **** case CKM_SHA256_HMAC: case CKM_SHA384_HMAC_GENERAL: case CKM_SHA384_HMAC: case CKM_SHA512_HMAC_GENERAL: case CKM_SHA512_HMAC: ! if (active_op->context != NULL) ! bzero(active_op->context, sizeof (soft_hmac_ctx_t)); break; case CKM_DES_MAC_GENERAL: case CKM_DES_MAC: if (session_p->encrypt.context != NULL) { free(session_p->encrypt.context); session_p->encrypt.context = NULL; session_p->encrypt.flags = 0; } ! if (active_op->context != NULL) ! bzero(active_op->context, sizeof (soft_des_ctx_t)); break; case CKM_AES_CMAC_GENERAL: case CKM_AES_CMAC: if (session_p->encrypt.context != NULL) { free(session_p->encrypt.context); session_p->encrypt.context = NULL; session_p->encrypt.flags = 0; } ! if (active_op->context != NULL) ! bzero(active_op->context, sizeof (soft_aes_ctx_t)); break; } if (active_op->context != NULL) { --- 561,599 ---- case CKM_SHA256_HMAC: case CKM_SHA384_HMAC_GENERAL: case CKM_SHA384_HMAC: case CKM_SHA512_HMAC_GENERAL: case CKM_SHA512_HMAC: ! if (active_op->context != NULL) { ! explicit_bzero(active_op->context, ! sizeof (soft_hmac_ctx_t)); ! } break; case CKM_DES_MAC_GENERAL: case CKM_DES_MAC: if (session_p->encrypt.context != NULL) { free(session_p->encrypt.context); session_p->encrypt.context = NULL; session_p->encrypt.flags = 0; } ! if (active_op->context != NULL) { ! explicit_bzero(active_op->context, ! sizeof (soft_des_ctx_t)); ! } break; case CKM_AES_CMAC_GENERAL: case CKM_AES_CMAC: if (session_p->encrypt.context != NULL) { free(session_p->encrypt.context); session_p->encrypt.context = NULL; session_p->encrypt.flags = 0; } ! if (active_op->context != NULL) { ! explicit_bzero(active_op->context, ! sizeof (soft_aes_ctx_t)); ! } break; } if (active_op->context != NULL) {