Blame SOURCES/jss-fix-SignerInfo-version.patch

a7067b
# HG changeset patch
a7067b
# User David Stutzman<david.konrad.stutzman@us.army.mil>
a7067b
# Date 1516144092 28800
a7067b
#      Tue Jan 16 15:08:12 2018 -0800
a7067b
# Node ID 1d858c6d4626b625bb671426e6899d98c2f5bb2e
a7067b
# Parent  8746a3fc74785e2fd12f86d08a6886ed9160620e
a7067b
Bug# 386351 SignerInfo version, r=cfu
a7067b
a7067b
This patch fixes versioning of SignerInfo to match CMS spec.
a7067b
a7067b
cfu for dstutzman
a7067b
a7067b
diff --git a/org/mozilla/jss/pkix/cms/SignerInfo.java b/org/mozilla/jss/pkix/cms/SignerInfo.java
a7067b
--- a/org/mozilla/jss/pkix/cms/SignerInfo.java
a7067b
+++ b/org/mozilla/jss/pkix/cms/SignerInfo.java
a7067b
@@ -52,9 +52,6 @@
a7067b
     private OCTET_STRING encryptedDigest;
a7067b
     private SET unsignedAttributes; // [1] OPTIONAL
a7067b
 
a7067b
-    // we only do CMS in RFC 2630
a7067b
-    private static final INTEGER VERSION = new INTEGER(3);
a7067b
-
a7067b
     ///////////////////////////////////////////////////////////////////////
a7067b
     ///////////////////////////////////////////////////////////////////////
a7067b
     // Accessor methods
a7067b
@@ -198,8 +195,17 @@
a7067b
         CryptoManager.NotInitializedException, SignatureException,
a7067b
         TokenException
a7067b
     {
a7067b
-        version = VERSION;
a7067b
+        if (signerIdentifier == null) {
a7067b
+            throw new IllegalArgumentException("SignerIdentifier may not be null");
a7067b
+        }
a7067b
         this.signerIdentifier = signerIdentifier;
a7067b
+        if (SignerIdentifier.ISSUER_AND_SERIALNUMBER.equals(this.signerIdentifier.getType())) {
a7067b
+            this.version = new INTEGER(1);
a7067b
+        } else if (SignerIdentifier.SUBJECT_KEY_IDENTIFIER.equals(this.signerIdentifier.getType())) {
a7067b
+            this.version = new INTEGER(3);
a7067b
+        } else {
a7067b
+            throw new IllegalArgumentException("Unexpected SignerIdentifier type");
a7067b
+        }
a7067b
         this.digestAlgorithm =
a7067b
                 new AlgorithmIdentifier(signingAlg.getDigestAlg().toOID(),null);
a7067b