org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.parsePublicKey()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(9.9k)|赞(0)|评价(0)|浏览(118)

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

SubjectPublicKeyInfo.parsePublicKey介绍

[英]for when the public key is an encoded object - if the bitstring can't be decoded this routine throws an IOException.
[中]因为,当公钥是一个编码对象时——如果无法解码位字符串,该例程将抛出IOException。

代码示例

代码示例来源:origin: stackoverflow.com

byte[] encoded = publicKey.getEncoded();
SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(
  ASN1Sequence.getInstance(encoded));
byte[] otherEncoded = subjectPublicKeyInfo.parsePublicKey().getEncoded();

代码示例来源:origin: stackoverflow.com

PublicKey pub = pair.getPublic();
byte[] pubBytes = pub.getEncoded();

SubjectPublicKeyInfo spkInfo = SubjectPublicKeyInfo.getInstance(pubBytes);
ASN1Primitive primitive = spkInfo.parsePublicKey();
byte[] publicKeyPKCS1 = primitive.getEncoded();

代码示例来源:origin: cn.home1/oss-lib-common-spring-boot-1.4.2.RELEASE

@SneakyThrows
public static String convertPublicKeyFromX509ToPkcs1Pem(final byte[] publicKeyX509) {
 // Convert public key from X.509 SubjectPublicKeyInfo to PKCS1:
 final ASN1Primitive publicKeyPrimitive = SubjectPublicKeyInfo.getInstance(publicKeyX509).parsePublicKey();
 return pem(publicKeyPrimitive.getEncoded(), RsaKey.KEY_FORMAT_PKCS1, RsaKey.KEY_TYPE_PUBLIC);
}

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

JCERSAPublicKey(
  SubjectPublicKeyInfo    info)
{
  try
  {
    org.bouncycastle.asn1.pkcs.RSAPublicKey   pubKey = org.bouncycastle.asn1.pkcs.RSAPublicKey.getInstance(info.parsePublicKey());
    this.modulus = pubKey.getModulus();
    this.publicExponent = pubKey.getPublicExponent();
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in RSA public key");
  }
}

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

private void populateFromPublicKeyInfo(SubjectPublicKeyInfo info)
{
  try
  {
    org.bouncycastle.asn1.pkcs.RSAPublicKey  pubKey = org.bouncycastle.asn1.pkcs.RSAPublicKey.getInstance(info.parsePublicKey());
    this.algorithmIdentifier = info.getAlgorithm();
    this.modulus = pubKey.getModulus();
    this.publicExponent = pubKey.getPublicExponent();
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in RSA public key");
  }
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    RSAPublicKey pubKey = RSAPublicKey.getInstance(keyInfo.parsePublicKey());
    return new RSAKeyParameters(false, pubKey.getModulus(), pubKey.getPublicExponent());
  }
}

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

BCGOST3410PublicKey(
  SubjectPublicKeyInfo info)
{
  GOST3410PublicKeyAlgParameters    params = GOST3410PublicKeyAlgParameters.getInstance(info.getAlgorithm().getParameters());
  DEROctetString                    derY;
  try
  {
    derY = (DEROctetString)info.parsePublicKey();
    
    byte[]                  keyEnc = derY.getOctets();
    byte[]                  keyBytes = new byte[keyEnc.length];
    
    for (int i = 0; i != keyEnc.length; i++)
    {
      keyBytes[i] = keyEnc[keyEnc.length - 1 - i]; // was little endian
    }
    this.y = new BigInteger(1, keyBytes);
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in GOST3410 public key");
  }
  this.gost3410Spec = GOST3410ParameterSpec.fromPublicKeyAlg(params);
}

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

JCEElGamalPublicKey(
  SubjectPublicKeyInfo    info)
{
  ElGamalParameter        params = ElGamalParameter.getInstance(info.getAlgorithm().getParameters());
  ASN1Integer              derY = null;
  try
  {
    derY = (ASN1Integer)info.parsePublicKey();
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in DSA public key");
  }
  this.y = derY.getValue();
  this.elSpec = new ElGamalParameterSpec(params.getP(), params.getG());
}

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

public PublicKey generatePublic(SubjectPublicKeyInfo keyInfo)
    throws IOException
  {
    RainbowPublicKey pKey = RainbowPublicKey.getInstance(keyInfo.parsePublicKey());

    return new BCRainbowPublicKey(pKey.getDocLength(), pKey.getCoeffQuadratic(), pKey.getCoeffSingular(), pKey.getCoeffScalar());
  }
}

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

BCElGamalPublicKey(
  SubjectPublicKeyInfo info)
{
  ElGamalParameter        params = ElGamalParameter.getInstance(info.getAlgorithm().getParameters());
  ASN1Integer              derY = null;
  try
  {
    derY = (ASN1Integer)info.parsePublicKey();
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in DSA public key");
  }
  this.y = derY.getValue();
  this.elSpec = new ElGamalParameterSpec(params.getP(), params.getG());
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    DHParameter params = DHParameter.getInstance(keyInfo.getAlgorithm().getParameters());
    ASN1Integer derY = (ASN1Integer)keyInfo.parsePublicKey();
    BigInteger lVal = params.getL();
    int l = lVal == null ? 0 : lVal.intValue();
    DHParameters dhParams = new DHParameters(params.getP(), params.getG(), null, l);
    return new DHPublicKeyParameters(derY.getValue(), dhParams);
  }
}

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

public PublicKey generatePublic(SubjectPublicKeyInfo pki)
  throws IOException
{
  // get the inner type inside the BIT STRING
  ASN1Primitive innerType = pki.parsePublicKey();
  McEliecePublicKey key = McEliecePublicKey.getInstance(innerType);
  return new BCMcEliecePublicKey(new McEliecePublicKeyParameters(key.getN(), key.getT(), key.getG()));
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    ElGamalParameter params = ElGamalParameter.getInstance(keyInfo.getAlgorithm().getParameters());
    ASN1Integer derY = (ASN1Integer)keyInfo.parsePublicKey();
    return new ElGamalPublicKeyParameters(derY.getValue(), new ElGamalParameters(
      params.getP(), params.getG()));
  }
}

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

JDKDSAPublicKey(
  SubjectPublicKeyInfo    info)
{
  ASN1Integer              derY;
  try
  {
    derY = (ASN1Integer)info.parsePublicKey();
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in DSA public key");
  }
  this.y = derY.getValue();
  if (isNotNull(info.getAlgorithm().getParameters()))
  {
    DSAParameter params = DSAParameter.getInstance(info.getAlgorithm().getParameters());
    
    this.dsaSpec = new DSAParameterSpec(params.getP(), params.getQ(), params.getG());
  }
}

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

public PublicKey generatePublic(SubjectPublicKeyInfo pki)
  throws IOException
{
  // get the inner type inside the BIT STRING
  ASN1Primitive innerType = pki.parsePublicKey();
  McElieceCCA2PublicKey key = McElieceCCA2PublicKey.getInstance(innerType);
  return new BCMcElieceCCA2PublicKey(new McElieceCCA2PublicKeyParameters(key.getN(), key.getT(), key.getG(), Utils.getDigest(key.getDigest()).getAlgorithmName()));
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    ASN1Integer derY = (ASN1Integer)keyInfo.parsePublicKey();
    ASN1Encodable de = keyInfo.getAlgorithm().getParameters();
    DSAParameters parameters = null;
    if (de != null)
    {
      DSAParameter params = DSAParameter.getInstance(de.toASN1Primitive());
      parameters = new DSAParameters(params.getP(), params.getQ(), params.getG());
    }
    return new DSAPublicKeyParameters(derY.getValue(), parameters);
  }
}

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

public BCDSAPublicKey(
  SubjectPublicKeyInfo info)
{
  ASN1Integer              derY;
  try
  {
    derY = (ASN1Integer)info.parsePublicKey();
  }
  catch (IOException e)
  {
    throw new IllegalArgumentException("invalid info structure in DSA public key");
  }
  this.y = derY.getValue();
  if (isNotNull(info.getAlgorithm().getParameters()))
  {
    DSAParameter params = DSAParameter.getInstance(info.getAlgorithm().getParameters());
    
    this.dsaSpec = new DSAParameterSpec(params.getP(), params.getQ(), params.getG());
  }
  else
  {
    this.dsaSpec = null;
  }
  this.lwKeyParams = new DSAPublicKeyParameters(y, DSAUtil.toDSAParameters(dsaSpec));
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    XMSSKeyParams keyParams = XMSSKeyParams.getInstance(keyInfo.getAlgorithm().getParameters());
    ASN1ObjectIdentifier treeDigest = keyParams.getTreeDigest().getAlgorithm();
    XMSSPublicKey xmssPublicKey = XMSSPublicKey.getInstance(keyInfo.parsePublicKey());
    return new XMSSPublicKeyParameters
      .Builder(new XMSSParameters(keyParams.getHeight(), Utils.getDigest(treeDigest)))
      .withPublicSeed(xmssPublicKey.getPublicSeed())
      .withRoot(xmssPublicKey.getRoot()).build();
  }
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    DHPublicKey dhPublicKey = DHPublicKey.getInstance(keyInfo.parsePublicKey());
    BigInteger y = dhPublicKey.getY();
    DomainParameters dhParams = DomainParameters.getInstance(keyInfo.getAlgorithm().getParameters());
    BigInteger p = dhParams.getP();
    BigInteger g = dhParams.getG();
    BigInteger q = dhParams.getQ();
    BigInteger j = null;
    if (dhParams.getJ() != null)
    {
      j = dhParams.getJ();
    }
    DHValidationParameters validation = null;
    ValidationParams dhValidationParms = dhParams.getValidationParams();
    if (dhValidationParms != null)
    {
      byte[] seed = dhValidationParms.getSeed();
      BigInteger pgenCounter = dhValidationParms.getPgenCounter();
      // TODO Check pgenCounter size?
      validation = new DHValidationParameters(seed, pgenCounter.intValue());
    }
    return new DHPublicKeyParameters(y, new DHParameters(p, g, q, j, validation));
  }
}

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

AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams)
    throws IOException
  {
    XMSSMTKeyParams keyParams = XMSSMTKeyParams.getInstance(keyInfo.getAlgorithm().getParameters());
    ASN1ObjectIdentifier treeDigest = keyParams.getTreeDigest().getAlgorithm();
    XMSSPublicKey xmssMtPublicKey = XMSSPublicKey.getInstance(keyInfo.parsePublicKey());
    return new XMSSMTPublicKeyParameters
      .Builder(new XMSSMTParameters(keyParams.getHeight(), keyParams.getLayers(), Utils.getDigest(treeDigest)))
      .withPublicSeed(xmssMtPublicKey.getPublicSeed())
      .withRoot(xmssMtPublicKey.getRoot()).build();
  }
}

相关文章