diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/util/SubjectPublicKeyInfoFactory.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/util/SubjectPublicKeyInfoFactory.java | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/util/SubjectPublicKeyInfoFactory.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/util/SubjectPublicKeyInfoFactory.java deleted file mode 100644 index 131ba445f..000000000 --- a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/util/SubjectPublicKeyInfoFactory.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.spongycastle.crypto.util; - -import java.io.IOException; - -import org.spongycastle.asn1.ASN1Encodable; -import org.spongycastle.asn1.ASN1Integer; -import org.spongycastle.asn1.ASN1OctetString; -import org.spongycastle.asn1.DERNull; -import org.spongycastle.asn1.pkcs.PKCSObjectIdentifiers; -import org.spongycastle.asn1.pkcs.RSAPublicKey; -import org.spongycastle.asn1.x509.AlgorithmIdentifier; -import org.spongycastle.asn1.x509.SubjectPublicKeyInfo; -import org.spongycastle.asn1.x9.X962Parameters; -import org.spongycastle.asn1.x9.X9ECParameters; -import org.spongycastle.asn1.x9.X9ECPoint; -import org.spongycastle.asn1.x9.X9ObjectIdentifiers; -import org.spongycastle.crypto.params.AsymmetricKeyParameter; -import org.spongycastle.crypto.params.DSAPublicKeyParameters; -import org.spongycastle.crypto.params.ECDomainParameters; -import org.spongycastle.crypto.params.ECPublicKeyParameters; -import org.spongycastle.crypto.params.RSAKeyParameters; - -/** - * Factory to create ASN.1 subject public key info objects from lightweight public keys. - */ -public class SubjectPublicKeyInfoFactory -{ - /** - * Create a SubjectPublicKeyInfo public key. - * - * @param publicKey the SubjectPublicKeyInfo encoding - * @return the appropriate key parameter - * @throws java.io.IOException on an error encoding the key - */ - public static SubjectPublicKeyInfo createSubjectPublicKeyInfo(AsymmetricKeyParameter publicKey) throws IOException - { - if (publicKey instanceof RSAKeyParameters) - { - RSAKeyParameters pub = (RSAKeyParameters)publicKey; - - return new SubjectPublicKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE), new RSAPublicKey(pub.getModulus(), pub.getExponent())); - } - else if (publicKey instanceof DSAPublicKeyParameters) - { - DSAPublicKeyParameters pub = (DSAPublicKeyParameters)publicKey; - - return new SubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_dsa), new ASN1Integer(pub.getY())); - } - else if (publicKey instanceof ECPublicKeyParameters) - { - ECPublicKeyParameters pub = (ECPublicKeyParameters)publicKey; - ECDomainParameters domainParams = pub.getParameters(); - ASN1Encodable params; - - // TODO: need to handle named curves - if (domainParams == null) - { - params = new X962Parameters(DERNull.INSTANCE); // Implicitly CA - } - else - { - X9ECParameters ecP = new X9ECParameters( - domainParams.getCurve(), - domainParams.getG(), - domainParams.getN(), - domainParams.getH(), - domainParams.getSeed()); - - params = new X962Parameters(ecP); - } - - ASN1OctetString p = (ASN1OctetString)new X9ECPoint(pub.getQ()).toASN1Primitive(); - - return new SubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), p.getOctets()); - } - else - { - throw new IOException("key parameters not recognised."); - } - } -} |