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

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