diff --git a/core/src/test/java/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java b/core/src/test/java/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java index d5269aabfd..f80d07a7cf 100644 --- a/core/src/test/java/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java +++ b/core/src/test/java/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java @@ -160,14 +160,15 @@ else if (simple) SPHINCSPlusPublicKeyParameters pubParams = (SPHINCSPlusPublicKeyParameters)kp.getPublic(); SPHINCSPlusPrivateKeyParameters privParams = (SPHINCSPlusPrivateKeyParameters)kp.getPrivate(); - // FIXME No OIDs for simple variants of SPHINCS+ - if (name.indexOf("-simple") < 0) - { - pubParams = (SPHINCSPlusPublicKeyParameters)PublicKeyFactory.createKey( - SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(pubParams)); - privParams = (SPHINCSPlusPrivateKeyParameters)PrivateKeyFactory.createKey( - PrivateKeyInfoFactory.createPrivateKeyInfo(privParams)); - } + // OID encode/decode round-trip runs for all variants including "-simple" + // (OIDs for simple variants were wired correctly; the former FIXME guard was stale). + // The getParameters() assertions below catch any future OID<->parameters mapping regression. + pubParams = (SPHINCSPlusPublicKeyParameters)PublicKeyFactory.createKey( + SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(pubParams)); + privParams = (SPHINCSPlusPrivateKeyParameters)PrivateKeyFactory.createKey( + PrivateKeyInfoFactory.createPrivateKeyInfo(privParams)); + assertTrue(name + " " + count + ": public key parameters", parameters == pubParams.getParameters()); + assertTrue(name + " " + count + ": private key parameters", parameters == privParams.getParameters()); // System.err.println(Hex.toHexString(pubParams.getEncoded())); // System.err.println(Hex.toHexString(Arrays.concatenate(pubParams.getParameters().getEncoded(), pk))); diff --git a/core/src/test/jdk1.3/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java b/core/src/test/jdk1.3/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java index 1bb5f77b87..2ff7f7b30c 100644 --- a/core/src/test/jdk1.3/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java +++ b/core/src/test/jdk1.3/org/bouncycastle/pqc/crypto/test/SphincsPlusTest.java @@ -160,14 +160,15 @@ else if (simple) SPHINCSPlusPublicKeyParameters pubParams = (SPHINCSPlusPublicKeyParameters)kp.getPublic(); SPHINCSPlusPrivateKeyParameters privParams = (SPHINCSPlusPrivateKeyParameters)kp.getPrivate(); - // FIXME No OIDs for simple variants of SPHINCS+ - if (name.indexOf("-simple") < 0) - { - pubParams = (SPHINCSPlusPublicKeyParameters)PublicKeyFactory.createKey( - SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(pubParams)); - privParams = (SPHINCSPlusPrivateKeyParameters)PrivateKeyFactory.createKey( - PrivateKeyInfoFactory.createPrivateKeyInfo(privParams)); - } + // OID encode/decode round-trip runs for all variants including "-simple" + // (OIDs for simple variants were wired correctly; the former FIXME guard was stale). + // The getParameters() assertions below catch any future OID<->parameters mapping regression. + pubParams = (SPHINCSPlusPublicKeyParameters)PublicKeyFactory.createKey( + SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(pubParams)); + privParams = (SPHINCSPlusPrivateKeyParameters)PrivateKeyFactory.createKey( + PrivateKeyInfoFactory.createPrivateKeyInfo(privParams)); + assertTrue(name + " " + count + ": public key parameters", parameters == pubParams.getParameters()); + assertTrue(name + " " + count + ": private key parameters", parameters == privParams.getParameters()); // System.err.println(Hex.toHexString(pubParams.getEncoded())); // System.err.println(Hex.toHexString(Arrays.concatenate(pubParams.getParameters().getEncoded(), pk)));