diff options
Diffstat (limited to 'libraries/spongycastle/pkix/src/main/jdk1.3/org/spongycastle/cms/jcajce/JcaSignerId.java')
-rw-r--r-- | libraries/spongycastle/pkix/src/main/jdk1.3/org/spongycastle/cms/jcajce/JcaSignerId.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libraries/spongycastle/pkix/src/main/jdk1.3/org/spongycastle/cms/jcajce/JcaSignerId.java b/libraries/spongycastle/pkix/src/main/jdk1.3/org/spongycastle/cms/jcajce/JcaSignerId.java new file mode 100644 index 000000000..99650cfb1 --- /dev/null +++ b/libraries/spongycastle/pkix/src/main/jdk1.3/org/spongycastle/cms/jcajce/JcaSignerId.java @@ -0,0 +1,36 @@ +package org.spongycastle.cms.jcajce; + +import java.math.BigInteger; +import java.security.cert.X509Certificate; + +import org.spongycastle.asn1.x500.X500Name; +import org.spongycastle.cms.SignerId; +import org.spongycastle.jce.PrincipalUtil; +import org.spongycastle.jce.X509Principal; + +public class JcaSignerId + extends SignerId +{ + private static X509Principal getPrincipal(X509Certificate cert) + { + try + { + return PrincipalUtil.getIssuerX509Principal(cert); + } + catch (Exception e) + { + throw new IllegalArgumentException("unable to extract principle"); + } + } + + /** + * Construct a signer identifier based on the issuer, serial number and subject key identifier (if present) of the passed in + * certificate. + * + * @param certificate certificate providing the issue and serial number and subject key identifier. + */ + public JcaSignerId(X509Certificate certificate) + { + super(X500Name.getInstance(getPrincipal(certificate).getEncoded()), certificate.getSerialNumber(), CMSUtils.getSubjectKeyId(certificate)); + } +} |