本文整理了Java中org.bouncycastle.asn1.DERInteger
类的一些代码示例,展示了DERInteger
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。DERInteger
类的具体详情如下:
包路径:org.bouncycastle.asn1.DERInteger
类名称:DERInteger
暂无
代码示例来源:origin: edu.vt.middleware/vt-crypt
/**
* Extracts the integer value from a {@link DERInteger}.
*
* @param e DERInteger instance.
*
* @return Integer value.
*/
public static int asInt(final DEREncodable e)
{
if (!(e instanceof DERInteger)) {
throw new IllegalArgumentException("Argument must be DERInteger.");
}
return ((DERInteger) e).getValue().intValue();
}
代码示例来源:origin: edu.vt.middleware/vt-crypt
/**
* Produces DER-encoded byte array output from the raw DSA signature output
* parameters, r and s.
*
* @param r DSA signature output integer r.
* @param s DSA signature output integer s.
*
* @return DER-encoded concatenation of byte representations of r and s.
*
* @throws edu.vt.middleware.crypt.CryptException On cryptographic errors.
*/
private byte[] encode(final BigInteger r, final BigInteger s)
throws CryptException
{
final ByteArrayOutputStream out = new ByteArrayOutputStream();
final ASN1EncodableVector v = new ASN1EncodableVector();
v.add(new DERInteger(r));
v.add(new DERInteger(s));
try {
new DEROutputStream(out).writeObject(new DERSequence(v));
} catch (IOException e) {
throw new CryptException("Error encoding DSA signature.", e);
}
return out.toByteArray();
}
代码示例来源:origin: be.fedict.eid-trust-service/eid-trust-service-model
private BigInteger getCrlNumber(X509CRL crl) {
byte[] crlNumberExtensionValue = crl.getExtensionValue("2.5.29.20");
if (null == crlNumberExtensionValue) {
return null;
}
try {
DEROctetString octetString = (DEROctetString) (new ASN1InputStream(
new ByteArrayInputStream(crlNumberExtensionValue))
.readObject());
byte[] octets = octetString.getOctets();
DERInteger integer = (DERInteger) new ASN1InputStream(octets)
.readObject();
return integer.getPositiveValue();
} catch (IOException e) {
throw new RuntimeException("IO error: " + e.getMessage(), e);
}
}
代码示例来源:origin: edu.vt.middleware/vt-crypt
/**
* Reads a ASN.1 encoded EC private key according the structure defined in
* sections C.4 and C.2 of SEC 1: Elliptic Curve Cryptography,
* www.secg.org/collateral/sec1_final.pdf.
*
* @param seq ASN.1 encoded sequence of EC private key parameters.
*
* @return Constructed EC key parameter specification.
*/
public static ECPrivateKeySpec readEncodedPrivateKey(final ASN1Sequence seq)
{
final BigInteger s = DERInteger.getInstance(seq.getObjectAt(1)).getValue();
final ASN1TaggedObject params = DERTaggedObject.getInstance(
seq.getObjectAt(2));
return
new ECPrivateKeySpec(
s,
readEncodedParams((ASN1Sequence) params.getObject()));
}
代码示例来源:origin: org.codeartisans.qipki/qipki-crypto
@Override
public Set<PolicyConstraint> getPolicyConstraints( X509Certificate cert )
{
try {
byte[] value = cert.getExtensionValue( X509Extensions.PolicyConstraints.getId() );
if ( value == null ) {
return Collections.emptySet();
}
ASN1Sequence constraintsSequence = ( ASN1Sequence ) ASN1Object.fromByteArray( value );
Set<PolicyConstraint> constraints = new LinkedHashSet<PolicyConstraint>();
for ( int idx = 0; idx < constraintsSequence.size(); idx++ ) {
DERTaggedObject asn1Constraint = ( DERTaggedObject ) constraintsSequence.getObjectAt( idx );
DERInteger skipCerts = new DERInteger( ( ( DEROctetString ) asn1Constraint.getObject() ).getOctets() );
PolicyConstraint constraint = new PolicyConstraint();
switch ( asn1Constraint.getTagNo() ) {
case 0:
constraint.setRequireExplicitPolicy( skipCerts.getValue().intValue() );
break;
case 1:
constraint.setInhibitPolicyMapping( skipCerts.getValue().intValue() );
}
constraints.add( constraint );
}
return constraints;
} catch ( IOException ex ) {
throw new CryptoFailure( "Unable to extract PolicyConstraints from X509Certificate extensions", ex );
}
}
代码示例来源:origin: edu.vt.middleware/vt-crypt
privatePart);
spec = new ECPrivateKeySpec(
DERInteger.getInstance(seq.getObjectAt(0)).getValue(),
ECUtils.fromNamedCurve(oid));
} catch (IOException e) {
try {
spec = new RSAPrivateCrtKeySpec(
DERInteger.getInstance(sequence.getObjectAt(1)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(2)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(3)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(4)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(5)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(6)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(7)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(8)).getValue());
} catch (Exception e) {
throw new CryptException("Invalid RSA key.", e);
try {
spec = new DSAPrivateKeySpec(
DERInteger.getInstance(sequence.getObjectAt(5)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(1)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(2)).getValue(),
DERInteger.getInstance(sequence.getObjectAt(3)).getValue());
} catch (Exception e) {
throw new CryptException("Invalid DSA key.", e);
代码示例来源:origin: org.codeartisans.qipki/qipki-crypto
@Override
public String toString( DEREncodable obj )
{
if ( obj instanceof DERString ) {
return ( ( DERString ) obj ).getString();
} else if ( obj instanceof DERInteger ) {
return ( ( DERInteger ) obj ).getValue().toString();
} else if ( obj instanceof ASN1TaggedObject ) {
ASN1TaggedObject tagObj = ( ASN1TaggedObject ) obj;
return "[" + tagObj.getTagNo() + "] " + toString( tagObj.getObject() );
} else if ( obj instanceof ASN1Sequence ) {
ASN1Sequence aObj = ( ASN1Sequence ) obj;
StringBuilder sb = new StringBuilder( "[" );
for ( int i = 0, len = aObj.size(); i < len; i++ ) {
sb.append( toString( aObj.getObjectAt( i ) ) );
if ( i != len - 1 ) {
sb.append( ", " );
}
}
return sb.append( "]" ).toString();
} else {
return obj.toString();
}
}
代码示例来源:origin: gotoworld/hsd-cipher-sm
System.out.println("");
DERInteger d_r = new DERInteger(sm2Result.r);
DERInteger d_s = new DERInteger(sm2Result.s);
ASN1EncodableVector v2 = new ASN1EncodableVector();
v2.add(d_r);
代码示例来源:origin: GluuFederation/oxAuth
@SuppressWarnings({ "deprecation", "resource" })
private BigInteger getCrlNumber(X509CRL crl) throws IOException {
byte[] crlNumberExtensionValue = crl.getExtensionValue(X509Extensions.CRLNumber.getId());
if (crlNumberExtensionValue == null) {
return null;
}
DEROctetString octetString = (DEROctetString) (new ASN1InputStream(new ByteArrayInputStream(crlNumberExtensionValue)).readObject());
byte[] octets = octetString.getOctets();
DERInteger integer = (DERInteger) new ASN1InputStream(octets).readObject();
BigInteger crlNumber = integer.getPositiveValue();
return crlNumber;
}
代码示例来源:origin: edu.vt.middleware/vt-crypt
/**
* Produces the r,s integer pair of a DSA signature from a DER-encoded byte
* representation.
*
* @param in DER-encoded concatenation of byte representation of r and s.
*
* @return DSA signature output parameters (r,s).
*
* @throws edu.vt.middleware.crypt.CryptException On cryptographic errors.
*/
private BigInteger[] decode(final byte[] in)
throws CryptException
{
ASN1Sequence s;
try {
s = (ASN1Sequence) new ASN1InputStream(in).readObject();
} catch (IOException e) {
throw new CryptException("Error decoding DSA signature.", e);
}
return
new BigInteger[] {
((DERInteger) s.getObjectAt(0)).getValue(),
((DERInteger) s.getObjectAt(1)).getValue(),
};
}
}
代码示例来源:origin: nuls-io/nuls
public static byte[] sign(byte[] userId, byte[] privateKey, byte[] sourceData) throws IOException {
if (privateKey == null || privateKey.length == 0) {
return null;
}
if (sourceData == null || sourceData.length == 0) {
return null;
}
SM2 sm2 = SM2.Instance();
BigInteger userD = new BigInteger(privateKey);
ECPoint userKey = sm2.ecc_point_g.multiply(userD);
SM3Digest sm3 = new SM3Digest();
byte[] z = sm2.sm2GetZ(userId, userKey);
sm3.update(z, 0, z.length);
sm3.update(sourceData, 0, sourceData.length);
byte[] md = new byte[32];
sm3.doFinal(md, 0);
SM2Result sm2Result = new SM2Result();
sm2.sm2Sign(md, userD, userKey, sm2Result);
DERInteger dR = new DERInteger(sm2Result.r);
DERInteger dS = new DERInteger(sm2Result.s);
ASN1EncodableVector v2 = new ASN1EncodableVector();
v2.add(dR);
v2.add(dS);
DERObject sign = new DERSequence(v2);
byte[] signdata = sign.getDEREncoded();
return signdata;
}
代码示例来源:origin: be.fedict.eid-applet/eid-applet-service-signer
private BigInteger getCrlNumber(X509CRL crl) {
byte[] crlNumberExtensionValue = crl.getExtensionValue(X509Extensions.CRLNumber.getId());
if (null == crlNumberExtensionValue) {
return null;
}
try {
ASN1InputStream asn1InputStream = new ASN1InputStream(crlNumberExtensionValue);
ASN1OctetString octetString = (ASN1OctetString) asn1InputStream.readObject();
byte[] octets = octetString.getOctets();
DERInteger integer = (DERInteger) new ASN1InputStream(octets).readObject();
BigInteger crlNumber = integer.getPositiveValue();
return crlNumber;
} catch (IOException e) {
throw new RuntimeException("I/O error: " + e.getMessage(), e);
}
}
代码示例来源:origin: gotoworld/hsd-cipher-sm
DERObject derObj = dis.readObject();
Enumeration<DERInteger> e = ((ASN1Sequence) derObj).getObjects();
BigInteger r = ((DERInteger)e.nextElement()).getValue();
BigInteger s = ((DERInteger)e.nextElement()).getValue();
SM2Result sm2Result = new SM2Result();
sm2Result.r = r;
代码示例来源:origin: nuls-io/nuls
cipher.dofinal(c3);
DERInteger x = new DERInteger(c1.getX().toBigInteger());
DERInteger y = new DERInteger(c1.getY().toBigInteger());
DEROctetString derDig = new DEROctetString(c3);
DEROctetString derEnc = new DEROctetString(source);
代码示例来源:origin: nuls-io/nuls
public static boolean verifySign(byte[] userId, byte[] publicKey, byte[] sourceData, byte[] signData) throws IOException {
if (publicKey == null || publicKey.length == 0) {
return false;
}
if (sourceData == null || sourceData.length == 0) {
return false;
}
SM2 sm2 = SM2.Instance();
ECPoint userKey = sm2.ecc_curve.decodePoint(publicKey);
SM3Digest sm3 = new SM3Digest();
byte[] z = sm2.sm2GetZ(userId, userKey);
sm3.update(z, 0, z.length);
sm3.update(sourceData, 0, sourceData.length);
byte[] md = new byte[32];
sm3.doFinal(md, 0);
ByteArrayInputStream bis = new ByteArrayInputStream(signData);
ASN1InputStream dis = new ASN1InputStream(bis);
DERObject derObj = dis.readObject();
Enumeration<DERInteger> e = ((ASN1Sequence) derObj).getObjects();
BigInteger r = ((DERInteger) e.nextElement()).getValue();
BigInteger s = ((DERInteger) e.nextElement()).getValue();
SM2Result sm2Result = new SM2Result();
sm2Result.r = r;
sm2Result.s = s;
sm2.sm2Verify(md, userKey, sm2Result.r, sm2Result.s, sm2Result);
return sm2Result.r.equals(sm2Result.R);
}
代码示例来源:origin: gotoworld/hsd-cipher-sm
cipher.Dofinal(c3);
DERInteger x = new DERInteger(c1.getX().toBigInteger());
DERInteger y = new DERInteger(c1.getY().toBigInteger());
DEROctetString derDig = new DEROctetString(c3);
DEROctetString derEnc = new DEROctetString(source);
代码示例来源:origin: edu.vt.middleware/vt-crypt
/**
* Creates a {@link NoticeReference} object from DER data.
*
* @param enc DER encoded user notice; must be either <code>
* ASN1Sequence</code> or <code>
* org.bouncycastle.asn1.x509.NoticeReference</code> object.
*
* @return Notice reference.
*/
public static NoticeReference createNoticeReference(final DEREncodable enc)
{
final org.bouncycastle.asn1.x509.NoticeReference notRef =
org.bouncycastle.asn1.x509.NoticeReference.getInstance(enc);
// Build the array of notice numbers
final int[] notNums = new int[notRef.getNoticeNumbers().size()];
for (int i = 0; i < notNums.length; i++) {
final DERInteger num = (DERInteger) notRef.getNoticeNumbers().getObjectAt(
i);
notNums[i] = num.getValue().intValue();
}
return new NoticeReference(notRef.getOrganization().toString(), notNums);
}
代码示例来源:origin: br.gov.frameworkdemoiselle.component/demoiselle-certificate-signer
@Override
public ASN1Set getValue() {
SigningCertificate attribute = (SigningCertificate) super.getAttribute();
X509Certificate cert = attribute.getValue();
Digest digest = DigestFactory.getInstance().factoryDefault();
digest.setAlgorithm(DigestAlgorithmEnum.SHA_1);
byte[] certHash = null;
try {
certHash = digest.digest(cert.getEncoded());
} catch (CertificateEncodingException ex) {
ex.printStackTrace();
}
X509Name dirName = new X509Name(cert.getSubjectDN().getName());
GeneralName name = new GeneralName(dirName);
GeneralNames issuer = new GeneralNames(name);
DERInteger serialNumber = new DERInteger(cert.getSerialNumber());
IssuerSerial issuerSerial = new IssuerSerial(issuer, serialNumber);
ESSCertID essCertId = new ESSCertID(certHash, issuerSerial);
return new DERSet(new DERSequence(new ASN1Encodable[]{new DERSequence(essCertId), new DERSequence(new DERNull())}));
}
}
代码示例来源:origin: com.google.code.jscep/jscep-api
assert(signedData.getVersion().getValue().equals(BigInteger.ONE));
代码示例来源:origin: br.gov.frameworkdemoiselle.component/demoiselle-certificate-signer
@Override
public ASN1Set getValue() {
SigningCertificateV2 attribute = (SigningCertificateV2) super.getAttribute();
X509Certificate cert = attribute.getValue();
Digest digest = DigestFactory.getInstance().factoryDefault();
digest.setAlgorithm(DigestAlgorithmEnum.SHA_256);
byte[] certHash = null;
try {
certHash = digest.digest(cert.getEncoded());
} catch (CertificateEncodingException ex) {
ex.printStackTrace();
}
X509Name dirName = new X509Name(cert.getSubjectDN().getName());
GeneralName name = new GeneralName(dirName);
GeneralNames issuer = new GeneralNames(name);
DERInteger serial = new DERInteger(cert.getSerialNumber());
IssuerSerial issuerSerial = new IssuerSerial(issuer, serial);
String algorithmHashOID = SignerAlgorithmEnum.getSignerAlgorithmEnum(attribute.getAlgorithmHash()).getOIDAlgorithmHash();
AlgorithmIdentifier algorithmId = new AlgorithmIdentifier(algorithmHashOID);
ESSCertIDv2 essCertIDv2 = new ESSCertIDv2(algorithmId, certHash, issuerSerial);
return new DERSet(new DERSequence(new ASN1Encodable[]{new DERSequence(essCertIDv2), new DERSequence(new DERNull())}));
}
}
内容来源于网络,如有侵权,请联系作者删除!