From 8668b29ab9b7503a4f63e6708a741361bdf6756e Mon Sep 17 00:00:00 2001 From: vinnie Date: Fri, 25 Jan 2013 17:47:37 +0000 Subject: [PATCH] 8006951: Avoid storing duplicate PKCS12 attributes Reviewed-by: mullan --- .../sun/security/pkcs12/PKCS12KeyStore.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java b/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java index a085030e7..eefdbff81 100644 --- a/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java +++ b/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java @@ -136,6 +136,13 @@ public final class PKCS12KeyStore extends KeyStoreSpi { "keystore.PKCS12.keyProtectionAlgorithm" }; + // friendlyName, localKeyId, trustedKeyUsage + private static final String[] CORE_ATTRIBUTES = { + "1.2.840.113549.1.9.20", + "1.2.840.113549.1.9.21", + "2.16.840.1.113894.746875.1.1" + }; + private static final Debug debug = Debug.getInstance("pkcs12"); private static final int keyBag[] = {1, 2, 840, 113549, 1, 12, 10, 1, 2}; @@ -1537,6 +1544,13 @@ public final class PKCS12KeyStore extends KeyStoreSpi { if (attributes != null) { for (KeyStore.Entry.Attribute attribute : attributes) { + String attributeName = attribute.getName(); + // skip friendlyName, localKeyId and trustedKeyUsage + if (CORE_ATTRIBUTES[0].equals(attributeName) || + CORE_ATTRIBUTES[1].equals(attributeName) || + CORE_ATTRIBUTES[2].equals(attributeName)) { + continue; + } attrs.write(((PKCS12Attribute) attribute).getEncoded()); } } -- GitLab