mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 15:28:39 +09:00
updated to nss-3.44.3
This commit is contained in:
parent
97ea6ee957
commit
eb4044be79
7 changed files with 75 additions and 19 deletions
|
|
@ -1224,3 +1224,53 @@ TEST_F(pkixder_universal_types_tests, OID)
|
|||
|
||||
ASSERT_EQ(Success, OID(reader, expectedOID));
|
||||
}
|
||||
|
||||
TEST_F(pkixder_universal_types_tests, SkipOptionalImplicitPrimitiveTag)
|
||||
{
|
||||
const uint8_t DER_IMPLICIT_BIT_STRING_WITH_CLASS_NUMBER_1[] = {
|
||||
0x81,
|
||||
0x04,
|
||||
0x00,
|
||||
0x0A,
|
||||
0x0B,
|
||||
0x0C,
|
||||
};
|
||||
Input input(DER_IMPLICIT_BIT_STRING_WITH_CLASS_NUMBER_1);
|
||||
Reader reader(input);
|
||||
|
||||
ASSERT_EQ(Success, SkipOptionalImplicitPrimitiveTag(reader, 1));
|
||||
ASSERT_TRUE(reader.AtEnd());
|
||||
}
|
||||
|
||||
TEST_F(pkixder_universal_types_tests, SkipOptionalImplicitPrimitiveTagMismatch)
|
||||
{
|
||||
const uint8_t DER_IMPLICIT_BIT_STRING_WITH_CLASS_NUMBER_1[] = {
|
||||
0x81,
|
||||
0x04,
|
||||
0x00,
|
||||
0x0A,
|
||||
0x0B,
|
||||
0x0C,
|
||||
};
|
||||
Input input(DER_IMPLICIT_BIT_STRING_WITH_CLASS_NUMBER_1);
|
||||
Reader reader(input);
|
||||
|
||||
ASSERT_EQ(Success, SkipOptionalImplicitPrimitiveTag(reader, 2));
|
||||
ASSERT_FALSE(reader.AtEnd());
|
||||
}
|
||||
|
||||
TEST_F(pkixder_universal_types_tests, NoSkipOptionalImplicitConstructedTag)
|
||||
{
|
||||
const uint8_t DER_IMPLICIT_SEQUENCE_WITH_CLASS_NUMBER_1[] = {
|
||||
0xA1,
|
||||
0x03,
|
||||
0x05,
|
||||
0x01,
|
||||
0x00,
|
||||
};
|
||||
Input input(DER_IMPLICIT_SEQUENCE_WITH_CLASS_NUMBER_1);
|
||||
Reader reader(input);
|
||||
|
||||
ASSERT_EQ(Success, SkipOptionalImplicitPrimitiveTag(reader, 1));
|
||||
ASSERT_FALSE(reader.AtEnd());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,6 +114,17 @@ inline Result ExpectTagAndSkipValue(Reader& input, uint8_t tag) {
|
|||
return ExpectTagAndGetValue(input, tag, ignoredValue);
|
||||
}
|
||||
|
||||
// This skips IMPLICIT OPTIONAL tags that are "primitive" (not constructed),
|
||||
// given the number in the class of the tag (i.e. the number in the brackets in
|
||||
// `issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL`).
|
||||
inline Result SkipOptionalImplicitPrimitiveTag(Reader& input,
|
||||
uint8_t numberInClass) {
|
||||
if (input.Peek(CONTEXT_SPECIFIC | numberInClass)) {
|
||||
return ExpectTagAndSkipValue(input, CONTEXT_SPECIFIC | numberInClass);
|
||||
}
|
||||
return Success;
|
||||
}
|
||||
|
||||
// Like ExpectTagAndGetValue, except the output Input will contain the
|
||||
// encoded tag and length along with the value.
|
||||
inline Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,
|
||||
|
|
|
|||
|
|
@ -105,29 +105,24 @@ BackCert::Init()
|
|||
return rv;
|
||||
}
|
||||
|
||||
static const uint8_t CSC = der::CONTEXT_SPECIFIC | der::CONSTRUCTED;
|
||||
|
||||
// According to RFC 5280, all fields below this line are forbidden for
|
||||
// certificate versions less than v3. However, for compatibility reasons,
|
||||
// we parse v1/v2 certificates in the same way as v3 certificates. So if
|
||||
// these fields appear in a v1 certificate, they will be used.
|
||||
|
||||
// Ignore issuerUniqueID if present.
|
||||
if (tbsCertificate.Peek(CSC | 1)) {
|
||||
rv = der::ExpectTagAndSkipValue(tbsCertificate, CSC | 1);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
rv = der::SkipOptionalImplicitPrimitiveTag(tbsCertificate, 1);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
// Ignore subjectUniqueID if present.
|
||||
if (tbsCertificate.Peek(CSC | 2)) {
|
||||
rv = der::ExpectTagAndSkipValue(tbsCertificate, CSC | 2);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
rv = der::SkipOptionalImplicitPrimitiveTag(tbsCertificate, 2);
|
||||
if (rv != Success) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
static const uint8_t CSC = der::CONTEXT_SPECIFIC | der::CONSTRUCTED;
|
||||
rv = der::OptionalExtensions(
|
||||
tbsCertificate, CSC | 3,
|
||||
[this](Reader& extnID, const Input& extnValue, bool critical,
|
||||
|
|
|
|||
|
|
@ -22,10 +22,10 @@
|
|||
* The format of the version string should be
|
||||
* "<major version>.<minor version>[.<patch level>[.<build number>]][ <ECC>][ <Beta>]"
|
||||
*/
|
||||
#define NSS_VERSION "3.44.2" _NSS_CUSTOMIZED
|
||||
#define NSS_VERSION "3.44.3" _NSS_CUSTOMIZED
|
||||
#define NSS_VMAJOR 3
|
||||
#define NSS_VMINOR 44
|
||||
#define NSS_VPATCH 2
|
||||
#define NSS_VPATCH 3
|
||||
#define NSS_VBUILD 0
|
||||
#define NSS_BETA PR_FALSE
|
||||
|
||||
|
|
|
|||
|
|
@ -1321,7 +1321,7 @@ NSC_EncryptUpdate(CK_SESSION_HANDLE hSession,
|
|||
}
|
||||
/* encrypt the current padded data */
|
||||
rv = (*context->update)(context->cipherInfo, pEncryptedPart,
|
||||
&padoutlen, context->blockSize, context->padBuf,
|
||||
&padoutlen, maxout, context->padBuf,
|
||||
context->blockSize);
|
||||
if (rv != SECSuccess) {
|
||||
return sftk_MapCryptError(PORT_GetError());
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@
|
|||
* The format of the version string should be
|
||||
* "<major version>.<minor version>[.<patch level>[.<build number>]][ <ECC>][ <Beta>]"
|
||||
*/
|
||||
#define SOFTOKEN_VERSION "3.44.2" SOFTOKEN_ECC_STRING
|
||||
#define SOFTOKEN_VERSION "3.44.3" SOFTOKEN_ECC_STRING
|
||||
#define SOFTOKEN_VMAJOR 3
|
||||
#define SOFTOKEN_VMINOR 44
|
||||
#define SOFTOKEN_VPATCH 2
|
||||
#define SOFTOKEN_VPATCH 3
|
||||
#define SOFTOKEN_VBUILD 0
|
||||
#define SOFTOKEN_BETA PR_FALSE
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@
|
|||
* The format of the version string should be
|
||||
* "<major version>.<minor version>[.<patch level>[.<build number>]][ <Beta>]"
|
||||
*/
|
||||
#define NSSUTIL_VERSION "3.44.2"
|
||||
#define NSSUTIL_VERSION "3.44.3"
|
||||
#define NSSUTIL_VMAJOR 3
|
||||
#define NSSUTIL_VMINOR 44
|
||||
#define NSSUTIL_VPATCH 2
|
||||
#define NSSUTIL_VPATCH 3
|
||||
#define NSSUTIL_VBUILD 0
|
||||
#define NSSUTIL_BETA PR_FALSE
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue