mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-12 12:06:18 +08:00
doc: update pkcs12.md
This commit is contained in:
parent
8b0ad54238
commit
58196f9364
@ -1,8 +1,8 @@
|
|||||||
# [go-pkcs12](https://github.com/emmansun/go-pkcs12)应用指南
|
# [go-pkcs12](https://github.com/emmansun/go-pkcs12)应用指南
|
||||||
[PKCS #12: Personal Information Exchange Syntax v1.1](https://datatracker.ietf.org/doc/html/rfc7292),PKCS12目前似乎没有相应的国密标准。
|
[PKCS #12: Personal Information Exchange Syntax v1.1](https://datatracker.ietf.org/doc/html/rfc7292),PKCS12目前似乎没有相应的国密标准。
|
||||||
定制PKCS12的目的是:
|
定制PKCS12的目的是:
|
||||||
1. 可以处理SM2私钥和证书。
|
1. 可以处理**SM2**私钥和证书。
|
||||||
2. 可以替代、使用一些商密算法,主要是SM3和SM4。
|
2. 可以替代、使用一些商密算法,主要是**SM3**和**SM4**。
|
||||||
|
|
||||||
## PKCS#12的解析
|
## PKCS#12的解析
|
||||||
[go-pkcs12](https://github.com/emmansun/go-pkcs12)提供三个方法:
|
[go-pkcs12](https://github.com/emmansun/go-pkcs12)提供三个方法:
|
||||||
@ -16,15 +16,23 @@
|
|||||||
### 解码能处理的算法
|
### 解码能处理的算法
|
||||||
|
|
||||||
#### 证书及私钥加密算法
|
#### 证书及私钥加密算法
|
||||||
**PKCS12算法**:
|
这里主要是**PBES(Password-Based Encryption Scheme)**, 它主要涉及几方面:
|
||||||
|
1. 密码处理
|
||||||
|
2. 从密码派生出加密密钥
|
||||||
|
3. 具体对称加密算法
|
||||||
|
|
||||||
|
**PBES-PKCS12**
|
||||||
* pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3}
|
* pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3}
|
||||||
* pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5}
|
* pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5}
|
||||||
* pbewithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6}
|
* pbewithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6}
|
||||||
|
|
||||||
不同于PKCS#5 v1.5中的PBES1,上述这些是PKCS#12的独有算法,特别是它的KDF和密码处理。
|
不同于**PKCS#5 v1.5**中的**PBES1**,上述这些是**PKCS#12**的独有算法,特别是它的**KDF**和**密码处理**。
|
||||||
|
|
||||||
|
**PBES1**
|
||||||
|
PBES1属于老旧遗留算法,目前版本未实现。
|
||||||
|
|
||||||
**PBES2**
|
**PBES2**
|
||||||
由两部分组成,分别为**KDF**和加密算法。目前KDF只支持KDF2, KDF2中支持的PRF方法有:
|
由两部分组成,分别为**KDF**和加密算法。目前KDF只支持**KDF2**, KDF2中支持的**PRF**方法有:
|
||||||
* id-hmacWithSHA1
|
* id-hmacWithSHA1
|
||||||
* id-hmacWithSHA256
|
* id-hmacWithSHA256
|
||||||
* id-hmacWithSM3
|
* id-hmacWithSM3
|
||||||
@ -36,7 +44,7 @@
|
|||||||
* SM4-CBC-Pad,密钥长度支持16字节
|
* SM4-CBC-Pad,密钥长度支持16字节
|
||||||
|
|
||||||
#### 数据完整性保护
|
#### 数据完整性保护
|
||||||
这里只支持基于密码的完整性保护:HMAC。支持的HASH算法有:
|
这里只支持基于密码的完整性保护:**HMAC**。支持的HASH算法有:
|
||||||
* SHA1
|
* SHA1
|
||||||
* SHA256
|
* SHA256
|
||||||
* SM3
|
* SM3
|
||||||
|
Loading…
x
Reference in New Issue
Block a user