public static ECDSASignature decodeFromDER(byte[] bytes) { ASN1InputStream decoder = null; try { decoder = new ASN1InputStream(bytes); DLSequence seq = (DLSequence) decoder.readObject(); if (seq == null) throw new RuntimeException("Reached past end of ASN.1 stream."); ASN1Integer r, s; try { r = (ASN1Integer) seq.getObjectAt(0); s = (ASN1Integer) seq.getObjectAt(1); } catch (ClassCastException e) { throw new IllegalArgumentException(e); } // OpenSSL deviates from the DER spec by interpreting these values as unsigned, though they should not be // Thus, we always use the positive versions. See: http://r6.ca/blog/20111119T211504Z.html return new ECDSASignature(r.getPositiveValue(), s.getPositiveValue()); } catch (IOException e) { throw new RuntimeException(e); } finally { if (decoder != null) try { decoder.close(); } catch (IOException x) {} } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DEROctetString(nonce)); if (icvLen != 12) { v.add(new ASN1Integer(icvLen)); } return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new ASN1Integer(0)); v.add(data); return new BERSequence(v); } }
public ASN1OctetString getContent() { if (data.size() == 3) { ASN1TaggedObject o = ASN1TaggedObject.getInstance(data.getObjectAt(2)); return ASN1OctetString.getInstance(o, false); } return null; }
public DERBitString( ASN1Encodable obj) throws IOException { super(obj.toASN1Primitive().getEncoded(ASN1Encoding.DER), 0); }
private SecretKeyData(ASN1Sequence seq) { this.keyAlgorithm = ASN1ObjectIdentifier.getInstance(seq.getObjectAt(0)); this.keyBytes = ASN1OctetString.getInstance(seq.getObjectAt(1)); }
int encodedLength() throws IOException { if (encoded != null) { return 1 + StreamUtil.calculateBodyLength(encoded.length) + encoded.length; } else { return super.toDLObject().encodedLength(); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(encryptionParamSet); if (ephemeralPublicKey != null) { v.add(new DERTaggedObject(false, 0, ephemeralPublicKey)); } v.add(new DEROctetString(ukm)); return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DEROctetString(nonce)); if (icvLen != 12) { v.add(new ASN1Integer(icvLen)); } return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new ASN1Integer(0)); // version v.add(new DEROctetString(publicSeed)); v.add(new DEROctetString(root)); return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DEROctetString(encryptedKey)); if (maskKey != null) { v.add(new DERTaggedObject(false, 0, new DEROctetString(encryptedKey))); } v.add(new DEROctetString(macKey)); return new DERSequence(v); } }
private byte[] derEncode( BigInteger r, BigInteger s) throws IOException { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new ASN1Integer(r)); v.add(new ASN1Integer(s)); return new DERSequence(v).getEncoded(ASN1Encoding.DER); }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new DEROctetString(pendToken)); v.add(pendTime); return new DERSequence(v); }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(bodyPartID); v.add(thePOPAlgID); v.add(new DEROctetString(thePOP)); return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(encryptionParamSet); if (ukm != null) { v.add(new DEROctetString(ukm)); } return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(version); v.add(new ASN1Integer(height)); v.add(treeDigest); return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(version); v.add(subject); v.add(subjectPKInfo); if (attributes != null) { v.add(new DERTaggedObject(false, 0, attributes)); } return new DERSequence(v); }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(new ASN1Integer(keySize)); v.add(p); v.add(q); v.add(a); return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(sessionEncryptedKey); if (transportParameters != null) { v.add(new DERTaggedObject(false, 0, transportParameters)); } return new DERSequence(v); } }
public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(version); v.add(subject); v.add(subjectPublicKeyInfo); v.add(new DERTaggedObject(false, 0, attributes)); return new DERSequence(v); } }