diff options
Diffstat (limited to 'usr/src/cmd/wusbadm/crypto_util.c')
| -rw-r--r-- | usr/src/cmd/wusbadm/crypto_util.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/usr/src/cmd/wusbadm/crypto_util.c b/usr/src/cmd/wusbadm/crypto_util.c deleted file mode 100644 index 5bf42a73b8..0000000000 --- a/usr/src/cmd/wusbadm/crypto_util.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <strings.h> -#include <sys/param.h> -#include <pwd.h> -#include <nss_dbdefs.h> -#include <auth_attr.h> -#include "crypto_util.h" - -/* init kmf handle and pkcs11 handle, for cc creation */ -int -wusb_crypto_init( - KMF_HANDLE_T *kmfhandle, - CK_SESSION_HANDLE *pkhandle, - const char *pktoken, - const char *tokendir) -{ - KMF_KEYSTORE_TYPE kstype = KMF_KEYSTORE_PK11TOKEN; - boolean_t bfalse = FALSE; - KMF_ATTRIBUTE attrlist[20]; - int numattr; - - /* change default softtoken directory */ - if (setenv("SOFTTOKEN_DIR", tokendir, 1) != 0) { - - return (-1); - } - - /* init kmf */ - if (kmf_initialize(kmfhandle, NULL, NULL) != KMF_OK) { - - return (-1); - } - - numattr = 0; - kmf_set_attr_at_index(attrlist, numattr++, - KMF_KEYSTORE_TYPE_ATTR, &kstype, sizeof (kstype)); - kmf_set_attr_at_index(attrlist, numattr++, - KMF_TOKEN_LABEL_ATTR, (void *)pktoken, strlen(pktoken) + 1); - kmf_set_attr_at_index(attrlist, numattr++, - KMF_READONLY_ATTR, &bfalse, sizeof (bfalse)); - - if (kmf_configure_keystore(*kmfhandle, numattr, attrlist) != KMF_OK) { - - return (-1); - } - - /* get pkcs11 handle from kmf */ - *pkhandle = kmf_get_pk11_handle(*kmfhandle); - if (*pkhandle == NULL) { - - return (-1); - } - - return (0); -} - -void -wusb_crypto_fini(KMF_HANDLE_T kmfhandle) -{ - (void) kmf_finalize(kmfhandle); -} - -/* random generation, for cc creation */ -int -wusb_random( - CK_SESSION_HANDLE hSession, - CK_BYTE *seed, size_t slen, - CK_BYTE *rand, size_t rlen) -{ - hrtime_t hrt; - - if (seed == NULL) { - hrt = gethrtime() + gethrvtime(); - if (C_SeedRandom(hSession, (CK_BYTE *)&hrt, - sizeof (hrt)) != CKR_OK) { - - return (-1); - } - } else { - if (C_SeedRandom(hSession, seed, slen) != CKR_OK) { - - return (-1); - } - } - - if (C_GenerateRandom(hSession, rand, rlen) != CKR_OK) { - - return (-1); - } - - return (0); -} - - -/* conver mac address to label string */ -void -mac_to_label(uint8_t *mac, char *label) -{ - int i; - - bzero(label, WUSB_CC_LABEL_LENGTH); - for (i = 0; i < WUSB_DEV_MAC_LENGTH; i++) { - (void) snprintf(label, WUSB_CC_LABEL_LENGTH, - "%s%02x", label, mac[i]); - } -} - -/* ARGSUSED */ -/* For debug only, print an array of byte */ -void -print_array(const char *label, CK_BYTE *array, size_t len) -{ -#ifdef DEBUG - int i; - - fprintf(stdout, "%s :\n", label); - for (i = 0; i < len; i++) { - fprintf(stdout, "%02x ", array[i]); - if ((i & 15) == 15) fprintf(stdout, "\n"); - } -#endif -} - -/* Check if a uid has auths */ -int -chk_auths(uid_t uid, const char *auths) -{ - struct passwd pwd; - char buf[NSS_LINELEN_PASSWD]; - - - if (uid == (uid_t)-1) { - return (-1); - } - - /* get user name */ - if (getpwuid_r(uid, &pwd, buf, sizeof (buf)) == NULL) { - return (-1); - } - - /* check the auths */ - if (chkauthattr(auths, pwd.pw_name) != 1) { - return (-1); - } - return (0); - -} |
