summaryrefslogtreecommitdiffstats
path: root/security/nss/lib/ckfw/builtins/btoken.c
blob: ae1e1380bda202611b4524d5b5ccb5a0f9ffc0cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "builtins.h"

/*
 * builtins/token.c
 *
 * This file implements the NSSCKMDToken object for the
 * "builtin objects" cryptoki module.
 */

static NSSUTF8 *
builtins_mdToken_GetLabel(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance,
    CK_RV *pError)
{
    return (NSSUTF8 *)nss_builtins_TokenLabel;
}

static NSSUTF8 *
builtins_mdToken_GetManufacturerID(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance,
    CK_RV *pError)
{
    return (NSSUTF8 *)nss_builtins_ManufacturerID;
}

static NSSUTF8 *
builtins_mdToken_GetModel(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance,
    CK_RV *pError)
{
    return (NSSUTF8 *)nss_builtins_TokenModel;
}

static NSSUTF8 *
builtins_mdToken_GetSerialNumber(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance,
    CK_RV *pError)
{
    return (NSSUTF8 *)nss_builtins_TokenSerialNumber;
}

static CK_BBOOL
builtins_mdToken_GetIsWriteProtected(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance)
{
    return CK_TRUE;
}

static CK_VERSION
builtins_mdToken_GetHardwareVersion(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance)
{
    return nss_builtins_HardwareVersion;
}

static CK_VERSION
builtins_mdToken_GetFirmwareVersion(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance)
{
    return nss_builtins_FirmwareVersion;
}

static NSSCKMDSession *
builtins_mdToken_OpenSession(
    NSSCKMDToken *mdToken,
    NSSCKFWToken *fwToken,
    NSSCKMDInstance *mdInstance,
    NSSCKFWInstance *fwInstance,
    NSSCKFWSession *fwSession,
    CK_BBOOL rw,
    CK_RV *pError)
{
    return nss_builtins_CreateSession(fwSession, pError);
}

const NSSCKMDToken
    nss_builtins_mdToken = {
        (void *)NULL, /* etc */
        NULL,         /* Setup */
        NULL,         /* Invalidate */
        NULL,         /* InitToken -- default errs */
        builtins_mdToken_GetLabel,
        builtins_mdToken_GetManufacturerID,
        builtins_mdToken_GetModel,
        builtins_mdToken_GetSerialNumber,
        NULL, /* GetHasRNG -- default is false */
        builtins_mdToken_GetIsWriteProtected,
        NULL, /* GetLoginRequired -- default is false */
        NULL, /* GetUserPinInitialized -- default is false */
        NULL, /* GetRestoreKeyNotNeeded -- irrelevant */
        NULL, /* GetHasClockOnToken -- default is false */
        NULL, /* GetHasProtectedAuthenticationPath -- default is false */
        NULL, /* GetSupportsDualCryptoOperations -- default is false */
        NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */
        NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */
        NULL, /* GetMaxPinLen -- irrelevant */
        NULL, /* GetMinPinLen -- irrelevant */
        NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */
        NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */
        NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */
        NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */
        builtins_mdToken_GetHardwareVersion,
        builtins_mdToken_GetFirmwareVersion,
        NULL, /* GetUTCTime -- no clock */
        builtins_mdToken_OpenSession,
        NULL,        /* GetMechanismCount -- default is zero */
        NULL,        /* GetMechanismTypes -- irrelevant */
        NULL,        /* GetMechanism -- irrelevant */
        (void *)NULL /* null terminator */
    };