org.bouncycastle.asn1.ASN1Primitive类的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(727)

本文整理了Java中org.bouncycastle.asn1.ASN1Primitive类的一些代码示例,展示了ASN1Primitive类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ASN1Primitive类的具体详情如下:
包路径:org.bouncycastle.asn1.ASN1Primitive
类名称:ASN1Primitive

ASN1Primitive介绍

[英]Base class for ASN.1 primitive objects. These are the actual objects used to generate byte encodings.
[中]ASN的基类。1基本对象。这些是用于生成字节编码的实际对象。

代码示例

代码示例来源:origin: square/okhttp

private ByteString pkcs1Bytes() {
 try {
  PrivateKeyInfo privateKeyInfo = PrivateKeyInfo.getInstance(keyPair.getPrivate().getEncoded());
  return ByteString.of(privateKeyInfo.parsePrivateKey().toASN1Primitive().getEncoded());
 } catch (IOException e) {
  throw new AssertionError(e);
 }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

private OtherRevRefs(ASN1Sequence seq)
{
  if (seq.size() != 2)
  {
    throw new IllegalArgumentException("Bad sequence size: "
      + seq.size());
  }
  this.otherRevRefType = new ASN1ObjectIdentifier(((ASN1ObjectIdentifier)seq.getObjectAt(0)).getId());
  try
  {
    this.otherRevRefs = ASN1Primitive.fromByteArray(seq.getObjectAt(1)
      .toASN1Primitive().getEncoded(ASN1Encoding.DER));
  }
  catch (IOException e)
  {
    throw new IllegalStateException();
  }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

private OtherRevVals(ASN1Sequence seq)
{
  if (seq.size() != 2)
  {
    throw new IllegalArgumentException("Bad sequence size: "
      + seq.size());
  }
  this.otherRevValType = (ASN1ObjectIdentifier)seq.getObjectAt(0);
  try
  {
    this.otherRevVals = ASN1Primitive.fromByteArray(seq.getObjectAt(1)
      .toASN1Primitive().getEncoded(ASN1Encoding.DER));
  }
  catch (IOException e)
  {
    throw new IllegalStateException();
  }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

key = (ASN1OctetString)ASN1Primitive.fromByteArray(bits.getBytes());
byte[] keyEnc = key.getOctets();
if (keyInfo.getAlgorithm().getAlgorithm().equals(UAObjectIdentifiers.dstu4145le))
DSTU4145Params dstuParams = DSTU4145Params.getInstance(keyInfo.getAlgorithm().getParameters());
  if (keyInfo.getAlgorithm().getAlgorithm().equals(UAObjectIdentifiers.dstu4145le))
  ECCurve curve = new ECCurve.F2m(field.getM(), field.getK1(), field.getK2(), field.getK3(), binary.getA(), new BigInteger(1, b_bytes));
  byte[] g_bytes = binary.getG();
  if (keyInfo.getAlgorithm().getAlgorithm().equals(UAObjectIdentifiers.dstu4145le))

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

/**
 * @deprecated use org.bouncycastle.cert.jcajce.JcaX509ExtensionUtils.parseExtensionValue()
 */
public static ASN1Primitive fromExtensionValue(
  byte[]  encodedValue) 
  throws IOException
{
  ASN1OctetString octs = (ASN1OctetString)ASN1Primitive.fromByteArray(encodedValue);
  
  return ASN1Primitive.fromByteArray(octs.getOctets());
}

代码示例来源:origin: zero11it/acme-client

public static String getCACertificateURL(X509Certificate certificate) throws IOException {
    byte[] bOctets = ((ASN1OctetString) ASN1Primitive.fromByteArray(certificate.getExtensionValue(Extension.authorityInfoAccess.getId()))).getOctets();
    AuthorityInformationAccess access = AuthorityInformationAccess.getInstance(ASN1Sequence.fromByteArray(bOctets));
    for (AccessDescription ad:access.getAccessDescriptions()){
      if (ad.getAccessMethod().equals(X509ObjectIdentifiers.id_ad_caIssuers)){
        return ad.getAccessLocation().getName().toString();
      }
    }
    return null;
  }
}

代码示例来源:origin: poreid/poreid

private URL getOcspUrlFromCertificate(X509Certificate certificate) {
  byte[] octetBytes = certificate.getExtensionValue(org.bouncycastle.asn1.x509.Extension.authorityInfoAccess.getId());
  
  if (null != octetBytes) {
    try {
      byte[] encoded = X509ExtensionUtil.fromExtensionValue(octetBytes).getEncoded();
      ASN1Sequence seq = ASN1Sequence.getInstance(ASN1Primitive.fromByteArray(encoded));
      AuthorityInformationAccess access = AuthorityInformationAccess.getInstance(seq);
      for (AccessDescription accessDescription : access.getAccessDescriptions()){
        if (accessDescription.getAccessMethod().equals(AccessDescription.id_ad_ocsp)){
          url = new URL(accessDescription.getAccessLocation().getName().toString());
          break;
        }
      }                
    } catch (IOException ignore) {
    }
  }
  return url;
}

代码示例来源:origin: SAMLRaider/SAMLRaider

public String getSubjectKeyIdentifier() {
  // https://stackoverflow.com/questions/6523081/why-doesnt-my-key-identifier-match
  byte[] e = certificate.getExtensionValue(Extension.subjectKeyIdentifier.getId());
  if (e == null) {
    return "";
  }
  ASN1Primitive ap;
  byte[] k = {};
  try {
    ap = JcaX509ExtensionUtils.parseExtensionValue(e);
    k = ASN1OctetString.getInstance(ap.getEncoded()).getOctets();
  } catch (IOException e1) {
    e1.printStackTrace();
  }
  return CertificateHelper.addHexColons(CertificateHelper.byteArrayToHex(k));
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

private void verifySig(ASN1Encodable store, SignatureCheck integrityCheck, PublicKey key)
  throws GeneralSecurityException, IOException
{
  Signature sig = helper.createSignature(integrityCheck.getSignatureAlgorithm().getAlgorithm().getId());
  sig.initVerify(key);
  sig.update(store.toASN1Primitive().getEncoded(ASN1Encoding.DER));
  if (!sig.verify(integrityCheck.getSignature().getOctets()))
  {
    throw new IOException("BCFKS KeyStore corrupted: signature calculation failed");
  }
}

代码示例来源:origin: kaikramer/keystore-explorer

/**
 * Parse UPN/otherName
 *
 * @param generalName otherName object
 * @return UPN as string
 */
public static String parseUPN(GeneralName generalName) {
  // OtherName ::= SEQUENCE {
  //    type-id OBJECT IDENTIFIER,
  //    value [0] EXPLICIT ANY DEFINED BY type-id }
  ASN1Sequence otherName = (ASN1Sequence) generalName.getName();
  ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) otherName.getObjectAt(0);
  if (UPN_OID.equals(oid.getId())) {
    DERTaggedObject derTaggedObject = (DERTaggedObject) otherName.getObjectAt(1);
    DERUTF8String upn = DERUTF8String.getInstance(derTaggedObject.getObject());
    return MessageFormat.format(res.getString("GeneralNameUtil.OtherGeneralName"), "UPN", upn.getString());
  }
  // fallback to generic handling
  ASN1Encodable value = otherName.getObjectAt(1);
  try {
    return MessageFormat.format(res.getString("GeneralNameUtil.OtherGeneralName"),
        ObjectIdUtil.toString(oid),
        HexUtil.getHexString(value.toASN1Primitive().getEncoded(ASN1Encoding.DER)));
  } catch (IOException e) {
    return MessageFormat.format(res.getString("GeneralNameUtil.OtherGeneralName"),
        ObjectIdUtil.toString(oid),
        "");
  }
}

代码示例来源:origin: SAMLRaider/SAMLRaider

public String getAuthorityKeyIdentifier() {
  byte[] e = certificate.getExtensionValue(Extension.authorityKeyIdentifier.getId());
  if (e == null) {
    return "";
  }
  ASN1Primitive ap;
  byte[] k = {};
  try {
    ap = JcaX509ExtensionUtils.parseExtensionValue(e);
    k = ASN1Sequence.getInstance(ap.getEncoded()).getEncoded();
  } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
  }
  // Very ugly hack to extract the SHA1 Hash (59 Hex Chars) from the
  // Extension :(
  return CertificateHelper.addHexColons(CertificateHelper.byteArrayToHex(k)).substring(12, k.length * 3 - 1);
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

private String stringifyOtherNameCollection(Set otherNames)
  {
    StringBuilder temp = new StringBuilder();
    temp.append("[");
    for (Iterator it = otherNames.iterator(); it.hasNext(); )
    {
      if (temp.length() > 1)
      {
        temp.append(",");
      }
      OtherName name = OtherName.getInstance(it.next());
      temp.append(name.getTypeID().getId());
      temp.append(":");
      try
      {
        temp.append(Hex.toHexString(name.getValue().toASN1Primitive().getEncoded()));
      }
      catch (IOException e)
      {
        temp.append(e.toString());
      }
    }
    temp.append("]");
    return temp.toString();
  }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

pki = PrivateKeyInfo.getInstance(ASN1Primitive.fromByteArray(encKey));
if (PQCObjectIdentifiers.mcEliece.equals(pki.getPrivateKeyAlgorithm().getAlgorithm()))

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

/**
 * return the signature parameters, or null if there aren't any.
 */
public byte[] getSigAlgParams()
{
  if (c.getSignatureAlgorithm().getParameters() != null)
  {
    try
    {
      return c.getSignatureAlgorithm().getParameters().toASN1Primitive().getEncoded(ASN1Encoding.DER);
    }
    catch (IOException e)
    {
      return null;
    }
  }
  else
  {
    return null;
  }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

protected void localInit(
  byte[] params)
  throws IOException
{
  ASN1Primitive asn1Params = ASN1Primitive.fromByteArray(params);
  if (asn1Params instanceof ASN1OctetString)
  {
    this.iv = ASN1OctetString.getInstance(asn1Params).getOctets();
  }
  else if (asn1Params instanceof ASN1Sequence)
  {
    GOST28147Parameters gParams = GOST28147Parameters.getInstance(asn1Params);
    this.sBox = gParams.getEncryptionParamSet();
    this.iv = gParams.getIV();
  }
  else
  {
    throw new IOException("Unable to recognize parameters");
  }
}

代码示例来源:origin: eu.eu-emi.security/canl

/**
   * Extracts the full algorithm identifier from the given certificate.
   * @param cert input certificate
   * @return extracted algorithm id
   * @throws IOException if parameters of the algorithm can not be parsed 
   */
  public static AlgorithmIdentifier extractAlgorithmId(X509Certificate cert) 
      throws IOException
  {
    String oid = cert.getSigAlgOID();
    byte params[] = cert.getSigAlgParams();
    if (params != null)
    {
      ASN1Primitive derParams = ASN1Primitive.fromByteArray(params);
      return new AlgorithmIdentifier(new ASN1ObjectIdentifier(oid), 
          derParams);
    } else
    {
      return new AlgorithmIdentifier(new ASN1ObjectIdentifier(oid));
    }
  }
}

代码示例来源:origin: itext/itext7

static X509Principal getIssuerX509Name(ASN1Sequence issuerAndSerialNumber) throws IOException {
  return new X509Principal(issuerAndSerialNumber.getObjectAt(0).toASN1Primitive().getEncoded());
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

boolean asn1Equals(
  ASN1Primitive o)
{
  if (!(o instanceof ASN1Sequence))
  {
    return false;
  }
  
  ASN1Sequence   other = (ASN1Sequence)o;
  if (this.size() != other.size())
  {
    return false;
  }
  Enumeration s1 = this.getObjects();
  Enumeration s2 = other.getObjects();
  while (s1.hasMoreElements())
  {
    ASN1Encodable obj1 = getNext(s1);
    ASN1Encodable obj2 = getNext(s2);
    ASN1Primitive o1 = obj1.toASN1Primitive();
    ASN1Primitive o2 = obj2.toASN1Primitive();
    if (o1 == o2 || o1.equals(o2))
    {
      continue;
    }
    return false;
  }
  return true;
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

key = (ASN1OctetString)ASN1Primitive.fromByteArray(bits.getBytes());
byte[] keyEnc = key.getOctets();
if (info.getAlgorithm().getParameters() instanceof ASN1ObjectIdentifier)
  paramOID = ASN1ObjectIdentifier.getInstance(info.getAlgorithm().getParameters());
  gostParams = paramOID;
  GOST3410PublicKeyAlgParameters params = GOST3410PublicKeyAlgParameters.getInstance(info.getAlgorithm().getParameters());
  gostParams = params;
  paramOID = params.getPublicKeyParamSet();

代码示例来源:origin: eu.eu-emi.security/canl

public static byte[] extractNonce(OCSPReq request) throws IOException
  {
    Extension nonceExt = request.getExtension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce);
    if (nonceExt == null)
      return null;
    byte[] nonceAsn = nonceExt.getExtnValue().getEncoded();
    if (nonceAsn == null)
      return null;
    ASN1OctetString octs;
    try
    {
      octs = (ASN1OctetString)ASN1Primitive.fromByteArray(nonceAsn);
    } catch (Exception e)
    {
      throw new IllegalStateException("Can't decode nonce encoded in request", e);
    }
    return octs.getOctets();			
  }
}

相关文章