nss_sys/bindings/
pkcs11t.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5use std::os::raw::{c_uchar, c_ulong, c_void};
6
7pub const CK_TRUE: CK_BBOOL = 1;
8pub const CK_FALSE: CK_BBOOL = 0;
9pub type CK_BYTE = c_uchar;
10pub type CK_BBOOL = CK_BYTE;
11pub type CK_ULONG = c_ulong;
12pub type CK_BYTE_PTR = *mut CK_BYTE;
13pub type CK_VOID_PTR = *mut c_void;
14pub type CK_OBJECT_HANDLE = CK_ULONG;
15pub type CK_OBJECT_CLASS = CK_ULONG;
16pub type CK_KEY_TYPE = CK_ULONG;
17pub type CK_ATTRIBUTE_TYPE = CK_ULONG;
18pub type CK_FLAGS = CK_ULONG;
19#[repr(C)]
20#[derive(Clone, Copy)]
21pub struct CK_ATTRIBUTE {
22    pub type_: CK_ATTRIBUTE_TYPE,
23    pub pValue: CK_VOID_PTR,
24    pub ulValueLen: CK_ULONG,
25}
26pub type CK_MECHANISM_TYPE = CK_ULONG;
27
28pub const CK_INVALID_HANDLE: u32 = 0;
29pub const CKO_PRIVATE_KEY: u32 = 3;
30pub const CKK_EC: u32 = 3;
31pub const CKA_CLASS: u32 = 0;
32pub const CKA_TOKEN: u32 = 1;
33pub const CKA_PRIVATE: u32 = 2;
34pub const CKA_VALUE: u32 = 17;
35pub const CKA_KEY_TYPE: u32 = 256;
36pub const CKA_ID: u32 = 258;
37pub const CKA_SENSITIVE: u32 = 259;
38pub const CKA_ENCRYPT: u32 = 260;
39pub const CKA_DECRYPT: u32 = 261;
40pub const CKA_WRAP: u32 = 262;
41pub const CKA_SIGN: u32 = 264;
42pub const CKA_EC_PARAMS: u32 = 384;
43pub const CKA_EC_POINT: u32 = 385;
44// https://searchfox.org/nss/rev/4d480919bbf204df5e199b9fdedec8f2a6295778/lib/util/pkcs11t.h#1244
45pub const CKM_VENDOR_DEFINED: u32 = 0x80000000;
46pub const CKM_SHA256_HMAC: u32 = 593;
47pub const CKM_SHA384_HMAC: u32 = 609;
48pub const CKM_SHA512_HMAC: u32 = 625;
49pub const CKM_EC_KEY_PAIR_GEN: u32 = 4160;
50pub const CKM_ECDH1_DERIVE: u32 = 4176;
51pub const CKM_AES_CBC_PAD: u32 = 4229;
52pub const CKM_AES_GCM: u32 = 4231;
53pub const CKM_AES_KEY_GEN: u64 = 0x00001080;
54pub const CKM_AES_KEY_WRAP_KWP: u64 = 0x0000210B;
55pub const CKD_NULL: u32 = 1;