rfc9579.original | rfc9579.txt | |||
---|---|---|---|---|
Internet Engineering Task Force H. Kario, Ed. | Internet Engineering Task Force (IETF) H. Kario | |||
Internet-Draft Red Hat, Inc. | Request for Comments: 9579 Red Hat, Inc. | |||
Updates: 7292, 8018 (if approved) 22 February 2024 | Updates: 7292, 8018 May 2024 | |||
Intended status: Informational | Category: Informational | |||
Expires: 25 August 2024 | ISSN: 2070-1721 | |||
Use of Password Based Message Authentication Code 1 (PBMAC1) in PKCS #12 | Use of Password-Based Message Authentication Code 1 (PBMAC1) in PKCS #12 | |||
Syntax | Syntax | |||
draft-ietf-lamps-pkcs12-pbmac1-08 | ||||
Abstract | Abstract | |||
This document specifies additions and amendments to RFCs 7292 and | This document specifies additions and amendments to RFCs 7292 and | |||
8018. It defines a way to use the Password Based Message | 8018. It defines a way to use the Password-Based Message | |||
Authentication Code 1, defined in RFC 8018, inside the PKCS #12 | Authentication Code 1 (PBMAC1), defined in RFC 8018, inside the PKCS | |||
syntax. The purpose of this specification is to permit use of more | #12 syntax. The purpose of this specification is to permit the use | |||
modern Password-Based Key Derivation Functions (PBKDFs) and allow for | of more modern Password-Based Key Derivation Functions (PBKDFs) and | |||
regulatory compliance. | allow for regulatory compliance. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Not all documents | |||
approved by the IESG are candidates for any level of Internet | ||||
Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 25 August 2024. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9579. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Rationale | |||
3. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 3. Requirements Language | |||
4. Embedding PBMAC1 in PKCS #12 . . . . . . . . . . . . . . . . 3 | 4. Embedding PBMAC1 in PKCS #12 | |||
5. Recommended parameters . . . . . . . . . . . . . . . . . . . 4 | 5. Recommended Parameters | |||
6. Password encoding . . . . . . . . . . . . . . . . . . . . . . 4 | 6. Password Encoding | |||
7. Deprecated Algorithms . . . . . . . . . . . . . . . . . . . . 4 | 7. Deprecated Algorithms | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 8. IANA Considerations | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 9. Security Considerations | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 10. References | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 5 | 10.1. Normative References | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 6 | 10.2. Informative References | |||
Appendix A. Test Vectors . . . . . . . . . . . . . . . . . . . . 7 | Appendix A. Test Vectors | |||
A.1. Valid PKCS#12 file with SHA-256 HMAC and PRF . . . . . . 7 | A.1. Valid PKCS #12 File with SHA-256 HMAC and PRF | |||
A.2. Valid PKCS#12 file with SHA-256 HMAC and SHA-512 PRF . . 8 | A.2. Valid PKCS #12 File with SHA-256 HMAC and SHA-512 PRF | |||
A.3. Valid PKCS#12 file with SHA-512 HMAC and PRF . . . . . . 9 | A.3. Valid PKCS #12 File with SHA-512 HMAC and PRF | |||
A.4. Invalid PKCS#12 file with incorrect iteration count . . . 11 | A.4. Invalid PKCS #12 File with Incorrect Iteration Count | |||
A.5. Invalid PKCS#12 file with incorrect salt . . . . . . . . 12 | A.5. Invalid PKCS #12 File with Incorrect Salt | |||
A.6. Invalid PKCS#12 file with missing key length . . . . . . 13 | A.6. Invalid PKCS #12 File with Missing Key Length | |||
Appendix B. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 15 | Appendix B. ASN.1 Module | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17 | Author's Address | |||
1. Introduction | 1. Introduction | |||
The PKCS #12 [RFC7292] format is widely used for interoperable | The PKCS #12 format [RFC7292] is widely used for the interoperable | |||
transfer of certificate, key, and other miscellaneous secrets between | transfer of certificate, key, and other miscellaneous secrets between | |||
machines, applications, browsers, etc. Unfortunately, the original | machines, applications, browsers, etc. Unfortunately, [RFC7292] | |||
specification mandates the use of a specific password based key | mandates the use of a PKCS #12 specific password-based key derivation | |||
derivation function, the PBKDF1, allowing only for change of the | function that only allows for change of the underlying message digest | |||
underlying message digest function. | function. | |||
2. Rationale | 2. Rationale | |||
Due to security concerns with PBKDF1 and much higher extensibility of | Due to security concerns with the key derivation function from | |||
PBMAC1 [RFC8018], we propose the use of PBMAC1 for integrity | [RFC7292] and the much higher extensibility of PBMAC1 [RFC8018], we | |||
protection of PKCS #12 structures. The new syntax is designed to | propose the use of PBMAC1 for integrity protection of PKCS #12 | |||
allow legacy applications to still be able to decrypt the key | structures. The new syntax is designed to allow legacy applications | |||
material, even if they are unable to interpret the new integrity | to still be able to decrypt the key material, even if they are unable | |||
protection, provided that they can ignore failures in MAC | to interpret the new integrity protection, provided that they can | |||
verification. This change allows for use of PBKDF2 [RFC8018] or | ignore failures in Message Authentication Code (MAC) verification. | |||
scrypt [RFC7914] KDFs for derivation of MAC keys and future | This change allows for the use of PBKDF2 [RFC8018] or scrypt PBKDFs | |||
extensibility. Use of the extensible PBMAC1 mechanism also allows | [RFC7914] for derivation of MAC keys and future extensibility. Use | |||
for greater flexibility and alignment to different government | of the extensible PBMAC1 mechanism also allows for greater | |||
regulations, for example, in environments where PBKDF2 is the only | flexibility and alignment with different government regulations, for | |||
allowed password-based key derivation function. | example, in environments where PBKDF2 is the only allowed password- | |||
based key derivation function. | ||||
As recommended methods for key protection require both encryption and | As the recommended methods for key protection require both encryption | |||
integrity protection, we've decided to amend the PKCS #12 format to | and integrity protection, we decided to amend the PKCS #12 format to | |||
support different key derivation functions rather than extending the | support different key derivation functions rather than extending the | |||
PKCS #5 by a new field allowing integrity protection. | PKCS #5 format by a new field that allows integrity protection. | |||
We have included an ASN.1 module [x680] [x681][x682][x683] [x690] | We included an ASN.1 module [x680] [x681] [x682] [x683] [x690] that | |||
that can be combined with the ASN.1 module in [RFC8018] to | can be combined with the ASN.1 modules in [RFC7292] and [RFC8018] to | |||
incorporate additional MAC algorithms. | incorporate additional MAC algorithms. | |||
3. Requirements Language | 3. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119][RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitabls, as shown here. | capitals, as shown here. | |||
4. Embedding PBMAC1 in PKCS #12 | 4. Embedding PBMAC1 in PKCS #12 | |||
The MacData structure in the PFX object, as described in bullet #3 in | The MacData structure in the PFX object, as described in item #3 in | |||
section 4 of RFC 7292 [RFC7292], is updated to include this | Section 4 of [RFC7292], is updated to include the following | |||
additional PBMAC1-specific guidance: | PBMAC1-specific guidance: | |||
1. the id-PBMAC1 object identifier is permitted as a valid type for | ||||
the DigestAlgorithmIdentifier inside the DigestInfo object. If | ||||
the algorithm field of the DigestAlgorithmIdentifier is id- | ||||
PBMAC1, then the parameters field MUST be present and have the | ||||
value consistent with PBMAC1-params | ||||
2. if the PBMAC1 algorithm is used, the digest value of the | ||||
DigestInfo object MUST be the result of the PBMAC1 calculation | ||||
over the authSafe field using the PBMAC1-params parameters | ||||
3. if the PBMAC1 algorithm is used, the macSalt value MUST be | ||||
ignored, for backwards compatibility it SHOULD NOT be empty | ||||
4. if the PBMAC1 algorithm is used, the iterations value MUST be | | a. The id-PBMAC1 object identifier is permitted as a valid type | |||
ignored, for backwards compatibility it SHOULD have a non-zero | | for the DigestAlgorithmIdentifier inside the DigestInfo | |||
positive value | | object. If the algorithm field of the | |||
| DigestAlgorithmIdentifier is id-PBMAC1, then the parameters | ||||
| field MUST be present and have a value consistent with | ||||
| PBMAC1-params parameters. | ||||
| | ||||
| b. If the PBMAC1 algorithm is used, the digest value of the | ||||
| DigestInfo object MUST be the result of the PBMAC1 calculation | ||||
| over the authSafe field using the PBMAC1-params parameters. | ||||
| | ||||
| c. If the PBMAC1 algorithm is used, the macSalt value MUST be | ||||
| ignored. For backwards compatibility, it SHOULD NOT be empty. | ||||
| | ||||
| d. If the PBMAC1 algorithm is used, the iterations value MUST be | ||||
| ignored. For backwards compatibility, it SHOULD have a non- | ||||
| zero positive value. | ||||
5. Recommended parameters | 5. Recommended Parameters | |||
To provide interoperability between different implementations, all | To provide interoperability between different implementations, all | |||
implementations of this specification MUST support the PBKDF2 key | implementations of this specification MUST support the PBKDF2 key | |||
derivation function paired with SHA-256 HMAC [SHA2] [RFC2104] for | derivation function paired with SHA-256 HMAC [SHA2] [RFC2104] for | |||
both integrity check and as the PBKDF2 pseudorandom function (PRF). | both integrity check and the PBKDF2 pseudorandom function (PRF). | |||
It's RECOMMENDED for implementations to support other SHA-2 based | It's RECOMMENDED for implementations to support other SHA-2-based | |||
HMACs. Implementations MAY use other hash functions, like the SHA-3 | HMACs. Implementations MAY use other hash functions, like the SHA-3 | |||
family of hash functions SHA-3 [SHA3]. Implementations MAY use other | family of hash functions [SHA3]. Implementations MAY use other KDF | |||
KDF methods, like the scrypt PBKDF [RFC7914]. | methods, like the scrypt PBKDF [RFC7914]. | |||
The length of the key generated by the used KDF MUST be encoded | The length of the key generated by the used KDF MUST be encoded | |||
explicitly in the parameters field and SHOULD be the same size as the | explicitly in the parameters field and SHOULD be the same size as the | |||
HMAC function output size. That means that PBMAC1-params specifying | HMAC function output size. This means that PBMAC1-params specifying | |||
SHA-256 HMAC should also include KDF parameters that generate 32 | SHA-256 HMAC should also include KDF parameters that generate a | |||
octet long key. In particular, when using the PBKDF2, the | 32-octet key. In particular, when using the PBKDF2, implementations | |||
implementations MUST include the keyLen field in the encoded | MUST include the keyLength field in the encoded PBKDF2-params. | |||
PBKDF2-params. Implementations MUST NOT accept PBKDF2 KDF with | Implementations MUST NOT accept PBKDF2 KDF with PBKDF2-params that | |||
PBKDF2-params that omit the keyLen field. | omit the keyLength field. | |||
6. Password encoding | 6. Password Encoding | |||
As documented in Appendix B.1 of RFC 7292 [RFC7292] handling of | As documented in Appendix B.1 of [RFC7292], the handling of password | |||
password encoding in the underlying standards is underspecified. | encoding in the underlying standards is underspecified. However, | |||
However, just as with PBES1 and PBES2 when used in the context of | just as with PBES1 and PBES2 when used in the context of PKCS #12 | |||
PKCS#12 objects, all passwords used with PBMAC1 MUST be created from | objects, all passwords used with PBMAC1 MUST be created from | |||
BMPStrings with a NULL terminator. | BMPStrings with a NULL terminator. | |||
7. Deprecated Algorithms | 7. Deprecated Algorithms | |||
While attacks against SHA-1 HMACs are not considered practical | While attacks against SHA-1 HMACs are not considered practical | |||
[RFC6194] to limit the number of algorithms needed for | [RFC6194] to limit the number of algorithms needed for | |||
interoperatbility, implementations of this specification SHOULD NOT | interoperability, implementations of this specification SHOULD NOT | |||
use PBKDF2 with the SHA-1 HMAC. Additionally the implementation MUST | use PBKDF2 with the SHA-1 HMAC. In addition, implementations MUST | |||
NOT use any other message digest functions with output of 160 bits or | NOT use any other message digest functions with an output of 160 bits | |||
smaller. | or less. | |||
8. IANA Considerations | 8. IANA Considerations | |||
IANA is requested to assign an object identifier from the SMI | IANA has registered the following object identifier in the "SMI | |||
Security for S/MIME Module Identifier registry for the ASN.1 module | Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" | |||
found in Appendix B. | registry. See Appendix B for the ASN.1 module. | |||
+=========+=======================+===========+ | ||||
| Decimal | Description | Reference | | ||||
+=========+=======================+===========+ | ||||
| 76 | id-pkcs12-pbmac1-2023 | RFC 9579 | | ||||
+---------+-----------------------+-----------+ | ||||
Table 1 | ||||
9. Security Considerations | 9. Security Considerations | |||
Except for use of different key derivation functions, this document | Except for the use of different key derivation functions, this | |||
doesn't change how the integrity protection on PKCS #12 objects is | document doesn't change how the integrity protection on PKCS #12 | |||
computed; therefore all the original security considerations from RFC | objects is computed; therefore, all the security considerations from | |||
7292 [RFC7292] apply. | [RFC7292] apply. | |||
Use of PBMAC1 and PBKDF2 is unchanged from RFC 8018 [RFC8018]; | Use of PBMAC1 and PBKDF2 is unchanged from [RFC8018]; therefore, all | |||
therefore all the original security considerations apply. | the security considerations from [RFC8018] apply. | |||
The KDFs generally don't have a lower limit for the generated key | The KDFs generally don't have a lower limit for the generated key | |||
size, allowing specifying very small key sizes (of 1 octet), which | size, allowing the specification of very small key sizes (of 1 | |||
can facilitate brute-force attacks on the HMAC. Since the KDF | octet), which can facilitate brute-force attacks on the HMAC. Since | |||
parameters are not cryptographically protected and HMACs accept | the KDF parameters are not cryptographically protected and HMACs | |||
arbitrary key sizes, implementations MAY refuse to process KDF | accept arbitrary key sizes, implementations MAY refuse to process KDF | |||
parameters that specify small key output sizes or weak parameters. | parameters that specify small key output sizes or weak parameters. | |||
It's RECOMMENDED to reject any KDF parameters that specify key | It's RECOMMENDED to reject any KDF parameters that specify key | |||
lengths below 20 octets. | lengths less than 20 octets. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | |||
Hashing for Message Authentication", RFC 2104, | Hashing for Message Authentication", RFC 2104, | |||
DOI 10.17487/RFC2104, February 1997, | DOI 10.17487/RFC2104, February 1997, | |||
<https://www.rfc-editor.org/info/rfc2104>. | <https://www.rfc-editor.org/info/rfc2104>. | |||
skipping to change at page 6, line 14 ¶ | skipping to change at line 244 ¶ | |||
[RFC8018] Moriarty, K., Ed., Kaliski, B., and A. Rusch, "PKCS #5: | [RFC8018] Moriarty, K., Ed., Kaliski, B., and A. Rusch, "PKCS #5: | |||
Password-Based Cryptography Specification Version 2.1", | Password-Based Cryptography Specification Version 2.1", | |||
RFC 8018, DOI 10.17487/RFC8018, January 2017, | RFC 8018, DOI 10.17487/RFC8018, January 2017, | |||
<https://www.rfc-editor.org/info/rfc8018>. | <https://www.rfc-editor.org/info/rfc8018>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[SHA2] National Institute of Standards and Technology, "Secure | [SHA2] National Institute of Standards and Technology (NIST), | |||
Hash Standard (SHS)", August 2015, | "Secure Hash Standard (SHS)", FIPS PUB 180-4, | |||
<https://doi.org/10.6028/NIST.FIPS.180-4>. | DOI 10.6028/NIST.FIPS.180-4, August 2015, | |||
<https://nvlpubs.nist.gov/nistpubs/FIPS/ | ||||
NIST.FIPS.180-4.pdf>. | ||||
[x680] ITU-T, "Information Technology - Abstract Syntax Notation | [x680] ITU-T, "Information technology - Abstract Syntax Notation | |||
One (ASN.1): Specification of basic notation", ITU-T | One (ASN.1): Specification of basic notation", ITU-T | |||
Recommendation X.680, ISO/IEC 8824-1:2021, February 2021, | Recommendation X.680, ISO/IEC 8824-1:2021, February 2021, | |||
<https://www.itu.int/rec/T-REC-X.680>. | <https://www.itu.int/rec/T-REC-X.680>. | |||
[x681] ITU-T, "Information Technology - Abstract Syntax Notation | [x681] ITU-T, "Information technology - Abstract Syntax Notation | |||
One (ASN.1): Information object specification", ITU-T | One (ASN.1): Information object specification", ITU-T | |||
Recommendation X.681, ISO/IEC 8824-2:2021, February 2021, | Recommendation X.681, ISO/IEC 8824-2:2021, February 2021, | |||
<https://www.itu.int/rec/T-REC-X.681>. | <https://www.itu.int/rec/T-REC-X.681>. | |||
[x682] ITU-T, "Information Technology - Abstract Syntax Notation | [x682] ITU-T, "Information technology - Abstract Syntax Notation | |||
One (ASN.1): Constraint specification", ITU-T | One (ASN.1): Constraint specification", ITU-T | |||
Recommendation X.682, ISO/IEC 8824-3:2021, February 2021, | Recommendation X.682, ISO/IEC 8824-3:2021, February 2021, | |||
<https://www.itu.int/rec/T-REC-X.682>. | <https://www.itu.int/rec/T-REC-X.682>. | |||
[x683] ITU-T, "Information Technology - Abstract Syntax Notation | [x683] ITU-T, "Information technology - Abstract Syntax Notation | |||
One (ASN.1): Parameterization of ASN.1 specifications", | One (ASN.1): Parameterization of ASN.1 specifications", | |||
ITU-T Recommendation X.683, ISO/IEC 8824-4:2021, February | ITU-T Recommendation X.683, ISO/IEC 8824-4:2021, February | |||
2021, <https://www.itu.int/rec/T-REC-X.683>. | 2021, <https://www.itu.int/rec/T-REC-X.683>. | |||
[x690] ITU-T, "Information Technology - ASN.1 encoding rules: | [x690] ITU-T, "Information technology - ASN.1 encoding rules: | |||
Specification of Basic Encoding Rules (BER), Canonical | Specification of Basic Encoding Rules (BER), Canonical | |||
Encoding Rules (CER) and Distinguished Encoding Rules | Encoding Rules (CER) and Distinguished Encoding Rules | |||
(DER)", ITU-T Recommendation X.690, ISO/IEC 8825-1:2021, | (DER)", ITU-T Recommendation X.690, ISO/IEC 8825-1:2021, | |||
February 2021, <https://www.itu.int/rec/T-REC-X.690>. | February 2021, <https://www.itu.int/rec/T-REC-X.690>. | |||
10.2. Informative References | 10.2. Informative References | |||
[RFC7914] Percival, C. and S. Josefsson, "The scrypt Password-Based | [RFC7914] Percival, C. and S. Josefsson, "The scrypt Password-Based | |||
Key Derivation Function", RFC 7914, DOI 10.17487/RFC7914, | Key Derivation Function", RFC 7914, DOI 10.17487/RFC7914, | |||
August 2016, <https://www.rfc-editor.org/info/rfc7914>. | August 2016, <https://www.rfc-editor.org/info/rfc7914>. | |||
[SHA3] National Institute of Standards and Technology, "SHA-3 | [SHA3] National Institute of Standards and Technology (NIST), | |||
Standard: Permutation-Based Hash and Extendable-Output | "SHA-3 Standard: Permutation-Based Hash and Extendable- | |||
Functions", August 2015, | Output Functions", FIPS PUB 202, | |||
<https://doi.org/10.6028/NIST.FIPS.202>. | DOI 10.6028/NIST.FIPS.202, August 2015, | |||
<https://nvlpubs.nist.gov/nistpubs/FIPS/ | ||||
NIST.FIPS.202.pdf>. | ||||
Appendix A. Test Vectors | Appendix A. Test Vectors | |||
All test vectors use "1234" as the password for both encryption and | All test vectors use "1234" as the password for both encryption and | |||
integrity protection. | integrity protection. | |||
A.1. Valid PKCS#12 file with SHA-256 HMAC and PRF | A.1. Valid PKCS #12 File with SHA-256 HMAC and PRF | |||
The following base64 encoded PKCS#12 file MUST be readable by | The following base64-encoded PKCS #12 file MUST be readable by | |||
implementations following this RFC. | implementations following this RFC. | |||
MIIKigIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | MIIKigIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | |||
BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | |||
SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | |||
ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | |||
7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | 7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | |||
+TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | +TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | |||
Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | |||
5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | 5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | |||
skipping to change at page 8, line 29 ¶ | skipping to change at line 357 ¶ | |||
p8wyik/BlndxN9eKbdTOi2wIi64h2QG8nOk66wQ/PSIJYwZl6eDNEQSzH/1mGCfU | p8wyik/BlndxN9eKbdTOi2wIi64h2QG8nOk66wQ/PSIJYwZl6eDNEQSzH/1mGCfU | |||
QnUT17UC/p+Qgenf6Auap2GWlvsJrB7u/pytz65rtjt/ouo6Ih6EwWqwVVpGXZD0 | QnUT17UC/p+Qgenf6Auap2GWlvsJrB7u/pytz65rtjt/ouo6Ih6EwWqwVVpGXZD0 | |||
7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | 7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | |||
IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | |||
FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | |||
hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfDBtMEkGCSqGSIb3DQEF | hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfDBtMEkGCSqGSIb3DQEF | |||
DjA8MCwGCSqGSIb3DQEFDDAfBAhvRzw4sC4xcwICCAACASAwDAYIKoZIhvcNAgkF | DjA8MCwGCSqGSIb3DQEFDDAfBAhvRzw4sC4xcwICCAACASAwDAYIKoZIhvcNAgkF | |||
ADAMBggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG | ADAMBggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG | |||
3QQITk9UIFVTRUQCAQE= | 3QQITk9UIFVTRUQCAQE= | |||
A.2. Valid PKCS#12 file with SHA-256 HMAC and SHA-512 PRF | A.2. Valid PKCS #12 File with SHA-256 HMAC and SHA-512 PRF | |||
The following base64 encoded PKCS#12 file SHOULD be readable by | The following base64-encoded PKCS #12 file SHOULD be readable by | |||
implementations following this RFC. | implementations following this RFC. | |||
MIIKigIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | MIIKigIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | |||
BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | |||
SIb3DQEFDDAcBAi4j6UBBY2iOgICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | SIb3DQEFDDAcBAi4j6UBBY2iOgICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | |||
ASoEEFpHSS5zrk/9pkDo1JRbtE6AggPgtbMLGoFd5KLpVXMdcxLrT129L7/vCr0B | ASoEEFpHSS5zrk/9pkDo1JRbtE6AggPgtbMLGoFd5KLpVXMdcxLrT129L7/vCr0B | |||
0I2tnhPPA7aFtRjjuGbwooCMQwxw9qzuCX1eH4xK2LUw6Gbd2H47WimSOWJMaiUb | 0I2tnhPPA7aFtRjjuGbwooCMQwxw9qzuCX1eH4xK2LUw6Gbd2H47WimSOWJMaiUb | |||
wy4alIWELYufe74kXPmKPCyH92lN1hqu8s0EGhIl7nBhWbFzow1+qpIc9/lpujJo | wy4alIWELYufe74kXPmKPCyH92lN1hqu8s0EGhIl7nBhWbFzow1+qpIc9/lpujJo | |||
wodSY+pNBD8oBeoU1m6DgOjgc62apL7m0nwavDUqEt7HAqtTBxKxu/3lpb1q8nbl | wodSY+pNBD8oBeoU1m6DgOjgc62apL7m0nwavDUqEt7HAqtTBxKxu/3lpb1q8nbl | |||
XLTqROax5feXErf+GQAqs24hUJIPg3O1eCMDVzH0h5pgZyRN9ZSIP0HC1i+d1lnb | XLTqROax5feXErf+GQAqs24hUJIPg3O1eCMDVzH0h5pgZyRN9ZSIP0HC1i+d1lnb | |||
skipping to change at page 9, line 44 ¶ | skipping to change at line 420 ¶ | |||
TuuV/JWldNuYXLfVfuv3msfSjSWkv6aRtRWIvmOv0Qba2o05LlwFMd1PzKM5uN4D | TuuV/JWldNuYXLfVfuv3msfSjSWkv6aRtRWIvmOv0Qba2o05LlwFMd1PzKM5uN4D | |||
DYtsS9A6yQOXEsvUkWcLOJnCs8SkJRdXhJTxdmzeBqM1JttKwLbgGMbpjbxlg3ns | DYtsS9A6yQOXEsvUkWcLOJnCs8SkJRdXhJTxdmzeBqM1JttKwLbgGMbpjbxlg3ns | |||
N+Z+sEFox+2ZWOglgnBHj0mCZOiAC8wqUu+sxsLT4WndaPWKVqoRQChvDaZaNOaN | N+Z+sEFox+2ZWOglgnBHj0mCZOiAC8wqUu+sxsLT4WndaPWKVqoRQChvDaZaNOaN | |||
qHciF9HPUcfZow+fH8TnSHneiQcDe6XcMhSaQ2MtpY8/jrgNKguZt22yH9gw/VpT | qHciF9HPUcfZow+fH8TnSHneiQcDe6XcMhSaQ2MtpY8/jrgNKguZt22yH9gw/VpT | |||
3/QOB7FBgKFIEbvUaf3nVjFIlryIheg+LeiBd2isoMNNXaBwcg2YXukxJTAjBgkq | 3/QOB7FBgKFIEbvUaf3nVjFIlryIheg+LeiBd2isoMNNXaBwcg2YXukxJTAjBgkq | |||
hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfDBtMEkGCSqGSIb3DQEF | hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfDBtMEkGCSqGSIb3DQEF | |||
DjA8MCwGCSqGSIb3DQEFDDAfBAgUr2yP+/DBrgICCAACASAwDAYIKoZIhvcNAgsF | DjA8MCwGCSqGSIb3DQEFDDAfBAgUr2yP+/DBrgICCAACASAwDAYIKoZIhvcNAgsF | |||
ADAMBggqhkiG9w0CCQUABCA5zFL93jw8ItGlcbHKhqkNwbgpp6layuOuxSju4/Vd | ADAMBggqhkiG9w0CCQUABCA5zFL93jw8ItGlcbHKhqkNwbgpp6layuOuxSju4/Vd | |||
6QQITk9UIFVTRUQCAQE= | 6QQITk9UIFVTRUQCAQE= | |||
A.3. Valid PKCS#12 file with SHA-512 HMAC and PRF | A.3. Valid PKCS #12 File with SHA-512 HMAC and PRF | |||
The following base64 encoded PKCS#12 file SHOULD be readable by | The following base64-encoded PKCS #12 file SHOULD be readable by | |||
implementations following this RFC. | implementations following this RFC. | |||
MIIKrAIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | MIIKrAIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | |||
BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | |||
SIb3DQEFDDAcBAisrqL8obSBaQICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | SIb3DQEFDDAcBAisrqL8obSBaQICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | |||
ASoEECjXYYca0pwsgn1Imb9WqFGAggPgT7RcF5YzEJANZU9G3tSdpCHnyWatTlhm | ASoEECjXYYca0pwsgn1Imb9WqFGAggPgT7RcF5YzEJANZU9G3tSdpCHnyWatTlhm | |||
iCEcBGgwI5gz0+GoX+JCojgYY4g+KxeqznyCu+6GeD00T4Em7SWme9nzAfBFzng0 | iCEcBGgwI5gz0+GoX+JCojgYY4g+KxeqznyCu+6GeD00T4Em7SWme9nzAfBFzng0 | |||
3lYCSnahSEKfgHerbzAtq9kgXkclPVk0Liy92/buf0Mqotjjs/5o78AqP86Pwbj8 | 3lYCSnahSEKfgHerbzAtq9kgXkclPVk0Liy92/buf0Mqotjjs/5o78AqP86Pwbj8 | |||
xYNuXOU1ivO0JiW2c2HefKYvUvMYlOh99LCoZPLHPkaaZ4scAwDjFeTICU8oowVk | xYNuXOU1ivO0JiW2c2HefKYvUvMYlOh99LCoZPLHPkaaZ4scAwDjFeTICU8oowVk | |||
LKvslrg1pHbfmXHMFJ4yqub37hRtj2CoJNy4+UA2hBYlBi9WnuAJIsjv0qS3kpLe | LKvslrg1pHbfmXHMFJ4yqub37hRtj2CoJNy4+UA2hBYlBi9WnuAJIsjv0qS3kpLe | |||
skipping to change at page 11, line 14 ¶ | skipping to change at line 483 ¶ | |||
3bI79uKo4we2g+WaEJlEzQ7147ZzV2wbDq89W69x1MWTfaDwlEtd4UaacYchAv7B | 3bI79uKo4we2g+WaEJlEzQ7147ZzV2wbDq89W69x1MWTfaDwlEtd4UaacYchAv7B | |||
TVaaVFiRAUywWaHGePpZG2WV1feH/zd+temxWR9qMFgBZySg1jipBPVciwl0LqlW | TVaaVFiRAUywWaHGePpZG2WV1feH/zd+temxWR9qMFgBZySg1jipBPVciwl0LqlW | |||
s/raIBYmLmAaMMgM3759UkNVznDoFHrY4z2EADXp0RHHVzJS1x+yYvp/9I+AcW55 | s/raIBYmLmAaMMgM3759UkNVznDoFHrY4z2EADXp0RHHVzJS1x+yYvp/9I+AcW55 | |||
oN0UP/3uQ6eyz/ix22sovQwhMJ8rmgR6CfyRPKmXu1RPK3puNv7mbFTfTXpYN2vX | oN0UP/3uQ6eyz/ix22sovQwhMJ8rmgR6CfyRPKmXu1RPK3puNv7mbFTfTXpYN2vX | |||
vhEZReXY8hJF/9o4G3UrJ1F0MgUHMCG86cw1z0bhPSaXVoufOnx/fRoxJTAjBgkq | vhEZReXY8hJF/9o4G3UrJ1F0MgUHMCG86cw1z0bhPSaXVoufOnx/fRoxJTAjBgkq | |||
hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwgZ0wgY0wSQYJKoZIhvcN | hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwgZ0wgY0wSQYJKoZIhvcN | |||
AQUOMDwwLAYJKoZIhvcNAQUMMB8ECFDaXOUaOcUPAgIIAAIBQDAMBggqhkiG9w0C | AQUOMDwwLAYJKoZIhvcNAQUMMB8ECFDaXOUaOcUPAgIIAAIBQDAMBggqhkiG9w0C | |||
CwUAMAwGCCqGSIb3DQILBQAEQHIAM8C9OAsHUCj9CmOJioqf7YwD4O/b3UiZ3Wqo | CwUAMAwGCCqGSIb3DQILBQAEQHIAM8C9OAsHUCj9CmOJioqf7YwD4O/b3UiZ3Wqo | |||
F6OmQIRDc68SdkZJ6024l4nWlnhTE7a4lb2Tru4k3NOTa1oECE5PVCBVU0VEAgEB | F6OmQIRDc68SdkZJ6024l4nWlnhTE7a4lb2Tru4k3NOTa1oECE5PVCBVU0VEAgEB | |||
A.4. Invalid PKCS#12 file with incorrect iteration count | A.4. Invalid PKCS #12 File with Incorrect Iteration Count | |||
The following base64 encoded PKCS#12 file MUST NOT be readable by an | The following base64-encoded PKCS #12 file MUST NOT be readable by an | |||
implementation following this RFC when it is verifying itegrity | implementation following this RFC when it is verifying integrity | |||
protection. | protection. | |||
MIIKiwIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | MIIKiwIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | |||
BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | |||
SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | |||
ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | |||
7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | 7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | |||
+TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | +TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | |||
Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | |||
5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | 5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | |||
skipping to change at page 12, line 30 ¶ | skipping to change at line 547 ¶ | |||
p8wyik/BlndxN9eKbdTOi2wIi64h2QG8nOk66wQ/PSIJYwZl6eDNEQSzH/1mGCfU | p8wyik/BlndxN9eKbdTOi2wIi64h2QG8nOk66wQ/PSIJYwZl6eDNEQSzH/1mGCfU | |||
QnUT17UC/p+Qgenf6Auap2GWlvsJrB7u/pytz65rtjt/ouo6Ih6EwWqwVVpGXZD0 | QnUT17UC/p+Qgenf6Auap2GWlvsJrB7u/pytz65rtjt/ouo6Ih6EwWqwVVpGXZD0 | |||
7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | 7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | |||
IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | |||
FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | |||
hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfTBtMEkGCSqGSIb3DQEF | hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfTBtMEkGCSqGSIb3DQEF | |||
DjA8MCwGCSqGSIb3DQEFDDAfBAhvRzw4sC4xcwICCAECASAwDAYIKoZIhvcNAgkF | DjA8MCwGCSqGSIb3DQEFDDAfBAhvRzw4sC4xcwICCAECASAwDAYIKoZIhvcNAgkF | |||
ADAMBggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG | ADAMBggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG | |||
3QQITk9UIFVTRUQCAggA | 3QQITk9UIFVTRUQCAggA | |||
A.5. Invalid PKCS#12 file with incorrect salt | A.5. Invalid PKCS #12 File with Incorrect Salt | |||
The following base64 encoded PKCS#12 file MUST NOT be readable by an | The following base64-encoded PKCS #12 file MUST NOT be readable by an | |||
implementation following this RFC when it is verifying itegrity | implementation following this RFC when it is verifying integrity | |||
protection. | protection. | |||
MIIKigIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | MIIKigIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | |||
BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | |||
SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | |||
ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | |||
7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | 7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | |||
+TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | +TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | |||
Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | |||
5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | 5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | |||
skipping to change at page 13, line 46 ¶ | skipping to change at line 611 ¶ | |||
p8wyik/BlndxN9eKbdTOi2wIi64h2QG8nOk66wQ/PSIJYwZl6eDNEQSzH/1mGCfU | p8wyik/BlndxN9eKbdTOi2wIi64h2QG8nOk66wQ/PSIJYwZl6eDNEQSzH/1mGCfU | |||
QnUT17UC/p+Qgenf6Auap2GWlvsJrB7u/pytz65rtjt/ouo6Ih6EwWqwVVpGXZD0 | QnUT17UC/p+Qgenf6Auap2GWlvsJrB7u/pytz65rtjt/ouo6Ih6EwWqwVVpGXZD0 | |||
7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | 7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | |||
IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | |||
FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | |||
hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfDBtMEkGCSqGSIb3DQEF | hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwfDBtMEkGCSqGSIb3DQEF | |||
DjA8MCwGCSqGSIb3DQEFDDAfBAhOT1QgVVNFRAICCAACASAwDAYIKoZIhvcNAgkF | DjA8MCwGCSqGSIb3DQEFDDAfBAhOT1QgVVNFRAICCAACASAwDAYIKoZIhvcNAgkF | |||
ADAMBggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG | ADAMBggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG | |||
3QQIb0c8OLAuMXMCAQE= | 3QQIb0c8OLAuMXMCAQE= | |||
A.6. Invalid PKCS#12 file with missing key length | A.6. Invalid PKCS #12 File with Missing Key Length | |||
The following base64 encoded PKCS#12 file MUST NOT be readable by an | The following base64-encoded PKCS #12 file MUST NOT be readable by an | |||
implementation following this RFC when it is verifying itegrity | implementation following this RFC when it is verifying integrity | |||
protection. | protection. | |||
MIIKiAIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | MIIKiAIBAzCCCgUGCSqGSIb3DQEHAaCCCfYEggnyMIIJ7jCCBGIGCSqGSIb3DQEH | |||
BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | BqCCBFMwggRPAgEAMIIESAYJKoZIhvcNAQcBMFcGCSqGSIb3DQEFDTBKMCkGCSqG | |||
SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | SIb3DQEFDDAcBAg9pxXxY2yscwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQME | |||
ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | ASoEEK7yYaFQDi1pYwWzm9F/fs+AggPgFIT2XapyaFgDppdvLkdvaF3HXw+zjzKb | |||
7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | 7xFC76DtVPhVTWVHD+kIss+jsj+XyvMwY0aCuAhAG/Dig+vzWomnsqB5ssw5/kTb | |||
+TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | +TMQ5PXLkNeoBmB6ArKeGc/QmCBQvQG/a6b+nXSWmxNpP+71772dmWmB8gcSJ0kF | |||
Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | Fj75NrIbmNiDMCb71Q8gOzBMFf6BpXf/3xWAJtxyic+tSNETfOJa8zTZb0+lV0w9 | |||
5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | 5eUmDrPUpuxEVbb0KJtIc63gRkcfrPtDd6Ii4Zzbzj2Evr4/S4hnrQBsiryVzJWy | |||
skipping to change at page 15, line 16 ¶ | skipping to change at line 677 ¶ | |||
7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | 7gVWH0Ke/Vr6aPGNvkLcmftPuDZsn9jiig3guhdeyRVf10Ox369kKWcG75q77hxE | |||
IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | IzSzDyUlBNbnom9SIjut3r+qVYmWONatC6q/4D0I42Lnjd3dEyZx7jmH3g/S2ASM | |||
FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | FzWr9pvXc61dsYOkdZ4PYa9XPUZxXFagZsoS3F1sU799+IJVU0tC0MExJTAjBgkq | |||
hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwejBqMEYGCSqGSIb3DQEF | hkiG9w0BCRUxFgQUwWO5DorvVWYF3BWUmAw0rUEajScwejBqMEYGCSqGSIb3DQEF | |||
DjA5MCkGCSqGSIb3DQEFDDAcBAhvRzw4sC4xcwICCAAwDAYIKoZIhvcNAgkFADAM | DjA5MCkGCSqGSIb3DQEFDDAcBAhvRzw4sC4xcwICCAAwDAYIKoZIhvcNAgkFADAM | |||
BggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG3QQI | BggqhkiG9w0CCQUABCB6pW2FOdcCNj87zS64NUXG36K5aXDnFHctIk5Bf4kG3QQI | |||
b0c8OLAuMXMCAggA | b0c8OLAuMXMCAggA | |||
Appendix B. ASN.1 Module | Appendix B. ASN.1 Module | |||
Note to RFC Editor: please change the TBD value below with the value | This appendix documents ASN.1 [x680] [x681] [x682] [x683] [x690] | |||
assigned by IANA | types, values, and object sets for this specification. It does so by | |||
This appendix documents ASN.1 [x680] [x681][x682][x683] [x690] types, | ||||
values, and object sets for this specification. It does so by | ||||
providing an ASN.1 module called PKCS12-PBMAC1-2023. | providing an ASN.1 module called PKCS12-PBMAC1-2023. | |||
Combine this module with the PKCS-12 ASN.1 module found in Appendix D | Combine this module with the PKCS-12 ASN.1 module found in Appendix D | |||
of [RFC8018] to add SHA-2 based HMACs by replacing the PBKDF2-PRFs | of [RFC7292] and the pkcs5v2-1 ASN.1 module in Appendix C of | |||
class found therein. | [RFC8018] to add SHA-2-based HMACs by replacing the PBKDF2-PRFs class | |||
referenced from [RFC7292]. | ||||
PKCS12-PBMAC1-2023 | PKCS12-PBMAC1-2023 | |||
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) | { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) | |||
smime(16) id-mod(0) pbkc12-pbamc1-2023(TBD) } | smime(16) id-mod(0) id-pkcs12-pbmac1-2023(76) } | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
BEGIN | BEGIN | |||
IMPORTS | IMPORTS | |||
AlgorithmIdentifier, ALGORITHM-IDENTIFIER, rsadsi | AlgorithmIdentifier, ALGORITHM-IDENTIFIER, rsadsi | |||
FROM PKCS5v2-1 -- From [RFC8018] | FROM PKCS5v2-1 -- From [RFC8018] | |||
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-5(5) | { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-5(5) | |||
modules(16) pkcs5v2-1(2) } | modules(16) pkcs5v2-1(2) } | |||
skipping to change at page 17, line 39 ¶ | skipping to change at line 792 ¶ | |||
keyLength INTEGER (1..MAX) OPTIONAL, | keyLength INTEGER (1..MAX) OPTIONAL, | |||
prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 | prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 | |||
} | } | |||
PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... } | PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... } | |||
END | END | |||
Author's Address | Author's Address | |||
Hubert Kario (editor) | Hubert Kario | |||
Red Hat, Inc. | Red Hat, Inc. | |||
Purkynova 115 | Purkynova 115 | |||
61200 Brno | 61200 Brno | |||
Czech Republic | Czech Republic | |||
Email: hkario@redhat.com | Email: hkario@redhat.com | |||
End of changes. 53 change blocks. | ||||
166 lines changed or deleted | 177 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |