List of usage examples for org.bouncycastle.asn1 ASN1Integer getInstance
public static ASN1Integer getInstance(Object obj)
From source file:net.sf.keystore_explorer.crypto.csr.spkac.Spkac.java
License:Open Source License
private DSAPublicKey decodeDsaPublicKeyFromBitString(DERBitString der, BigInteger p, BigInteger q, BigInteger g) throws SpkacException { try {//from w ww . j a va2 s . co m BigInteger y = ASN1Integer.getInstance(der.getBytes()).getValue(); KeyFactory keyFact = KeyFactory.getInstance("DSA"); return (DSAPublicKey) keyFact.generatePublic(new DSAPublicKeySpec(y, p, q, g)); } catch (GeneralSecurityException ex) { throw new SpkacException(res.getString("NoGenerateDsaPublicKeyFromSpkac.exception.message"), ex); } catch (Exception ex) { throw new SpkacException(res.getString("NoGenerateDsaPublicKeyFromSpkac.exception.message"), ex); } }
From source file:net.sf.keystore_explorer.crypto.x509.InhibitAnyPolicy.java
License:Open Source License
public static InhibitAnyPolicy getInstance(Object obj) { if (obj instanceof InhibitAnyPolicy) { return (InhibitAnyPolicy) obj; }/*from w ww. j a v a2 s .c o m*/ if (obj instanceof ASN1Integer) { int skipCerts = ((ASN1Integer) obj).getValue().intValue(); return new InhibitAnyPolicy(skipCerts); } if (obj instanceof byte[]) { int skipCerts = ASN1Integer.getInstance(obj).getValue().intValue(); return new InhibitAnyPolicy(skipCerts); } throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName()); }
From source file:net.sf.keystore_explorer.crypto.x509.PolicyConstraints.java
License:Open Source License
private PolicyConstraints(ASN1Sequence seq) { if (seq.size() > 2) { throw new IllegalArgumentException("sequence length > 2"); }/*w w w. ja v a2 s . c om*/ for (int i = 0; i < seq.size(); i++) { ASN1TaggedObject taggedObj = ASN1TaggedObject.getInstance(seq.getObjectAt(i)); switch (taggedObj.getTagNo()) { case 0: requireExplicitPolicy = ASN1Integer.getInstance(taggedObj.getObject()).getValue().intValue(); break; case 1: inhibitPolicyMapping = ASN1Integer.getInstance(taggedObj.getObject()).getValue().intValue(); break; default: throw new IllegalArgumentException("wrong tag number"); } } }
From source file:net.sf.keystore_explorer.crypto.x509.X509Ext.java
License:Open Source License
private String getQcStatementsStringValue(byte[] octets) throws IOException { // @formatter:off /*/*from www . j ava2 s. c om*/ QCStatements ::= SEQUENCE OF QSStatement QSStatement ::= SEQUENCE { statementId OBJECT IDENTIFIER, statementInfo ANY DEFINED BY statementId OPTIONAL } QcEuLimitValue ::= MonetaryValue QcRetentionPeriod ::= INTEGER */ // @formatter:on StringBuilder sb = new StringBuilder(); int qcStatementNr = 0; ASN1Sequence qcStatements = ASN1Sequence.getInstance(octets); for (ASN1Encodable asn1Encodable : qcStatements.toArray()) { QCStatement qcStatement = QCStatement.getInstance(asn1Encodable); ASN1ObjectIdentifier statementId = qcStatement.getStatementId(); ASN1Encodable statementInfo = qcStatement.getStatementInfo(); int indentLevel = 1; sb.append(MessageFormat.format(res.getString("QCStatement.QCStatement"), ++qcStatementNr)); sb.append(NEWLINE); QcStatementType qcStatementType = QcStatementType.resolveOid(statementId.getId()); switch (qcStatementType) { case QC_SYNTAX_V1: case QC_SYNTAX_V2: SemanticsInformation semanticsInfo = SemanticsInformation.getInstance(statementInfo); sb.append(getSemanticInformationValueString(qcStatementType, semanticsInfo, indentLevel)); break; case QC_COMPLIANCE: // no statementInfo sb.append(INDENT.toString(indentLevel)); sb.append(res.getString(QcStatementType.QC_COMPLIANCE.getResKey())); sb.append(NEWLINE); break; case QC_EU_LIMIT_VALUE: sb.append(INDENT.toString(indentLevel)); sb.append(res.getString(QcStatementType.QC_EU_LIMIT_VALUE.getResKey())); sb.append(NEWLINE); sb.append(getMonetaryValueStringValue(statementInfo, indentLevel + 1)); break; case QC_RETENTION_PERIOD: ASN1Integer asn1Integer = ASN1Integer.getInstance(statementInfo); sb.append(INDENT.toString(indentLevel)); sb.append(MessageFormat.format(res.getString(QcStatementType.QC_RETENTION_PERIOD.getResKey()), asn1Integer.getValue().toString())); sb.append(NEWLINE); break; case QC_SSCD: // no statementInfo sb.append(INDENT.toString(indentLevel)); sb.append(res.getString(QcStatementType.QC_SSCD.getResKey())); sb.append(NEWLINE); break; } } return sb.toString(); }
From source file:net.sf.keystore_explorer.crypto.x509.X509Ext.java
License:Open Source License
private String getMsCaVersionStringValue(byte[] octets) { /*/*from w ww . j ava 2 s. c o m*/ "The extension data is a DWORD value (encoded as X509_INTEGER in the extension); the low 16 bits are the certificate index, and the high 16 bits are the key index." */ ASN1Integer asn1Integer = ASN1Integer.getInstance(octets); int version = asn1Integer.getValue().intValue(); String certIndex = String.valueOf(version & 0xffff); String keyIndex = String.valueOf(version >> 16); StringBuilder sb = new StringBuilder(); sb.append(MessageFormat.format(res.getString("MSCaVersion.CertIndex"), certIndex)); sb.append(NEWLINE); sb.append(MessageFormat.format(res.getString("MSCaVersion.KeyIndex"), keyIndex)); sb.append(NEWLINE); return sb.toString(); }
From source file:org.cryptacular.asn.OpenSSLPrivateKeyDecoder.java
License:Open Source License
@Override protected AsymmetricKeyParameter decodeASN1(final byte[] encoded) { final ASN1Object o; try {//ww w . j ava2s.c o m o = ASN1Primitive.fromByteArray(encoded); } catch (Exception e) { throw new IllegalArgumentException("Invalid encoded key"); } final AsymmetricKeyParameter key; if (o instanceof ASN1ObjectIdentifier) { // EC private key with named curve in the default OpenSSL format emitted // by // // openssl ecparam -name xxxx -genkey // // which is the concatenation of the named curve OID and a sequence of 1 // containing the private point final ASN1ObjectIdentifier oid = ASN1ObjectIdentifier.getInstance(o); final int len = encoded[1]; final byte[] privatePart = new byte[encoded.length - len - 2]; System.arraycopy(encoded, len + 2, privatePart, 0, privatePart.length); final ASN1Sequence seq = ASN1Sequence.getInstance(privatePart); final X9ECParameters params = ECUtil.getNamedCurveByOid(oid); key = new ECPrivateKeyParameters(ASN1Integer.getInstance(seq.getObjectAt(0)).getValue(), new ECDomainParameters(params.getCurve(), params.getG(), params.getN(), params.getH(), params.getSeed())); } else { // OpenSSL "traditional" format is an ASN.1 sequence of key parameters // Detect key type based on number and types of parameters: // RSA -> {version, mod, pubExp, privExp, prime1, prime2, exp1, exp2, c} // DSA -> {version, p, q, g, pubExp, privExp} // EC -> {version, privateKey, parameters, publicKey} final ASN1Sequence sequence = ASN1Sequence.getInstance(o); if (sequence.size() == 9) { // RSA private certificate key key = new RSAPrivateCrtKeyParameters(ASN1Integer.getInstance(sequence.getObjectAt(1)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(2)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(3)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(4)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(5)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(6)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(7)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(8)).getValue()); } else if (sequence.size() == 6) { // DSA private key key = new DSAPrivateKeyParameters(ASN1Integer.getInstance(sequence.getObjectAt(5)).getValue(), new DSAParameters(ASN1Integer.getInstance(sequence.getObjectAt(1)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(2)).getValue(), ASN1Integer.getInstance(sequence.getObjectAt(3)).getValue())); } else if (sequence.size() == 4) { // EC private key with explicit curve final X9ECParameters params = X9ECParameters .getInstance(ASN1TaggedObject.getInstance(sequence.getObjectAt(2)).getObject()); key = new ECPrivateKeyParameters( new BigInteger(ASN1OctetString.getInstance(sequence.getObjectAt(1)).getOctets()), new ECDomainParameters(params.getCurve(), params.getG(), params.getN(), params.getH(), params.getSeed())); } else { throw new IllegalArgumentException("Invalid OpenSSL traditional private key format."); } } return key; }
From source file:org.cryptacular.pbe.PBES2EncryptionScheme.java
License:Open Source License
/** * Initializes the block cipher and sets up its initialization parameters. * * @param generator Derived key generator. * @param scheme PKCS#5 encryption scheme. *//*www. j a va 2s . c o m*/ private void initCipher(final PKCS5S2ParametersGenerator generator, final org.bouncycastle.asn1.pkcs.EncryptionScheme scheme) { final PBES2Algorithm alg = PBES2Algorithm.fromOid(scheme.getAlgorithm().getId()); if (keyLength == 0) { keyLength = alg.getKeySize(); } byte[] iv = null; CipherParameters cipherParameters = generator.generateDerivedParameters(keyLength); switch (alg) { case RC2: setCipher(alg.getCipherSpec().newInstance()); final ASN1Sequence rc2Params = ASN1Sequence.getInstance(scheme.getParameters()); if (rc2Params.size() > 1) { cipherParameters = new RC2Parameters(((KeyParameter) cipherParameters).getKey(), ASN1Integer.getInstance(rc2Params.getObjectAt(0)).getValue().intValue()); iv = ASN1OctetString.getInstance(rc2Params.getObjectAt(0)).getOctets(); } break; case RC5: final ASN1Sequence rc5Params = ASN1Sequence.getInstance(scheme.getParameters()); final int rounds = ASN1Integer.getInstance(rc5Params.getObjectAt(1)).getValue().intValue(); final int blockSize = ASN1Integer.getInstance(rc5Params.getObjectAt(2)).getValue().intValue(); if (blockSize == 32) { setCipher(new PaddedBufferedBlockCipher(new CBCBlockCipher(new RC532Engine()), new PKCS7Padding())); } cipherParameters = new RC5Parameters(((KeyParameter) cipherParameters).getKey(), rounds); if (rc5Params.size() > 3) { iv = ASN1OctetString.getInstance(rc5Params.getObjectAt(3)).getOctets(); } break; default: setCipher(alg.getCipherSpec().newInstance()); iv = ASN1OctetString.getInstance(scheme.getParameters()).getOctets(); } if (iv != null) { cipherParameters = new ParametersWithIV(cipherParameters, iv); } setCipherParameters(cipherParameters); }
From source file:org.cryptoworkshop.ximix.client.connection.signing.message.ECDSAInitialiseMessage.java
License:Apache License
private ECDSAInitialiseMessage(ASN1Sequence seq) { this.sigID = DERUTF8String.getInstance(seq.getObjectAt(0)).getString(); this.keyID = DERUTF8String.getInstance(seq.getObjectAt(1)).getString(); this.threshold = ASN1Integer.getInstance(seq.getObjectAt(2)).getValue().intValue(); this.n = ASN1Integer.getInstance(seq.getObjectAt(3)).getValue(); this.nodesToUse = MessageUtils.toArray(ASN1Sequence.getInstance(seq.getObjectAt(4))); }
From source file:org.cryptoworkshop.ximix.client.connection.signing.message.ECDSAPartialCreateMessage.java
License:Apache License
private ECDSAPartialCreateMessage(ASN1Sequence seq) { this.sigID = DERUTF8String.getInstance(seq.getObjectAt(0)).getString(); this.keyID = DERUTF8String.getInstance(seq.getObjectAt(1)).getString(); this.e = ASN1Integer.getInstance(seq.getObjectAt(2)).getValue(); this.nodesToUse = MessageUtils.toArray(ASN1Sequence.getInstance(seq.getObjectAt(3))); }
From source file:org.cryptoworkshop.ximix.common.asn1.board.PairSequenceWithProofs.java
License:Apache License
private PairSequenceWithProofs(ECCurve curve, ASN1Sequence sequence) { ASN1Sequence s = ASN1Sequence.getInstance(sequence.getObjectAt(0)); ecPairs = new ECPair[s.size()]; for (int i = 0; i != ecPairs.length; i++) { ecPairs[i] = Pair.getInstance(curve, s.getObjectAt(i)).getECPair(); }//from w w w . ja v a 2 s . c om s = ASN1Sequence.getInstance(sequence.getObjectAt(1)); ecProofs = new ECDecryptionProof[s.size()]; for (int i = 0; i != ecPairs.length; i++) { ASN1Sequence proof = ASN1Sequence.getInstance(s.getObjectAt(i)); ecProofs[i] = new ECDecryptionProof( curve.decodePoint(ASN1OctetString.getInstance(proof.getObjectAt(0)).getOctets()), curve.decodePoint(ASN1OctetString.getInstance(proof.getObjectAt(1)).getOctets()), ASN1Integer.getInstance(proof.getObjectAt(2)).getValue()); } }