org.spongycastle.asn1.x509.KeyUsage类的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(6.6k)|赞(0)|评价(0)|浏览(108)

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

KeyUsage介绍

[英]The KeyUsage object.

id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 } 
KeyUsage ::= BIT STRING { 
digitalSignature        (0), 
nonRepudiation          (1), 
keyEncipherment         (2), 
dataEncipherment        (3), 
keyAgreement            (4), 
keyCertSign             (5), 
cRLSign                 (6), 
encipherOnly            (7), 
decipherOnly            (8) }

[中]KeyUsage对象

id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 } 
KeyUsage ::= BIT STRING { 
digitalSignature        (0), 
nonRepudiation          (1), 
keyEncipherment         (2), 
dataEncipherment        (3), 
keyAgreement            (4), 
keyCertSign             (5), 
cRLSign                 (6), 
encipherOnly            (7), 
decipherOnly            (8) }

代码示例

代码示例来源:origin: com.madgag/scprov-jdk15on

public ASN1Primitive toASN1Primitive()
  {
    return new KeyUsage(usage);
  }
}

代码示例来源:origin: com.madgag.spongycastle/bctls-jdk15on

protected void validateKeyUsage(int keyUsageBits)
  throws IOException
{
  Extensions exts = certificate.getTBSCertificate().getExtensions();
  if (exts != null)
  {
    KeyUsage ku = KeyUsage.fromExtensions(exts);
    if (ku != null)
    {
      int bits = ku.getBytes()[0] & 0xff;
      if ((bits & keyUsageBits) != keyUsageBits)
      {
        throw new TlsFatalAlert(AlertDescription.certificate_unknown);
      }
    }
  }
}

代码示例来源:origin: com.madgag.spongycastle/core

public static KeyUsage fromExtensions(Extensions extensions)
{
  return KeyUsage.getInstance(extensions.getExtensionParsedValue(Extension.keyUsage));
}

代码示例来源:origin: com.madgag/sc-light-jdk15on

/**
 * Basic constructor.
 * 
 * @param usage - the bitwise OR of the Key Usage flags giving the
 * allowed uses for the key.
 * e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
 */
public KeyUsage(
  int usage)
{
  super(getBytes(usage), getPadBits(usage));
}

代码示例来源:origin: com.madgag.spongycastle/prov

public ASN1Primitive toASN1Primitive()
  {
    return new KeyUsage(usage).toASN1Primitive();
  }
}

代码示例来源:origin: com.madgag.spongycastle/bcpkix-jdk15on

KeyUsage keyUsage = KeyUsage.fromExtensions(cert.getExtensions());
  if (keyUsage.hasUsages(KeyUsage.keyCertSign))
  if (!(keyUsage.hasUsages(KeyUsage.digitalSignature) || keyUsage.hasUsages(KeyUsage.keyEncipherment)))

代码示例来源:origin: com.madgag.spongycastle/pkix

public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
  throws CertPathValidationException
{
  context.addHandledExtension(Extension.keyUsage);
  if (!context.isEndEntity())
  {
    KeyUsage usage = KeyUsage.fromExtensions(certificate.getExtensions());
    if (usage != null)
    {
      if (!usage.hasUsages(KeyUsage.keyCertSign))
      {
        throw new CertPathValidationException("Issuer certificate KeyUsage extension does not permit key signing");
      }
    }
    else
    {
      if (isMandatory)
      {
        throw new CertPathValidationException("KeyUsage extension not present in CA certificate");
      }
    }
  }
}

代码示例来源:origin: com.madgag.spongycastle/core

static void validateKeyUsage(org.spongycastle.asn1.x509.Certificate c, int keyUsageBits)
  throws IOException
{
  Extensions exts = c.getTBSCertificate().getExtensions();
  if (exts != null)
  {
    KeyUsage ku = KeyUsage.fromExtensions(exts);
    if (ku != null)
    {
      int bits = ku.getBytes()[0] & 0xff;
      if ((bits & keyUsageBits) != keyUsageBits)
      {
        throw new TlsFatalAlert(AlertDescription.certificate_unknown);
      }
    }
  }
}

代码示例来源:origin: com.madgag.spongycastle/core

public static KeyUsage getInstance(Object obj)   // needs to be DERBitString for other VMs
{
  if (obj instanceof KeyUsage)
  {
    return (KeyUsage)obj;
  }
  else if (obj != null)
  {
    return new KeyUsage(DERBitString.getInstance(obj));
  }
  return null;
}

代码示例来源:origin: com.madgag.spongycastle/bcpkix-jdk15on

public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
  throws CertPathValidationException
{
  context.addHandledExtension(Extension.keyUsage);
  if (!context.isEndEntity())
  {
    KeyUsage usage = KeyUsage.fromExtensions(certificate.getExtensions());
    if (usage != null)
    {
      if (!usage.hasUsages(KeyUsage.keyCertSign))
      {
        throw new CertPathValidationException("Issuer certificate KeyUsage extension does not permit key signing");
      }
    }
    else
    {
      if (isMandatory)
      {
        throw new CertPathValidationException("KeyUsage extension not present in CA certificate");
      }
    }
  }
}

代码示例来源:origin: com.madgag.spongycastle/prov

buf.append(KeyUsage.getInstance(dIn.readObject())).append(nl);

代码示例来源:origin: com.madgag.spongycastle/bctls-jdk15on

private boolean isSuitableKeyUsage(int keyUsageBits, X509Certificate c)
  {
    try
    {
      Extensions exts = TBSCertificate.getInstance(c.getTBSCertificate()).getExtensions();
      if (exts != null)
      {
        KeyUsage ku = KeyUsage.fromExtensions(exts);
        if (ku != null)
        {
          int bits = ku.getBytes()[0] & 0xff;
          if ((bits & keyUsageBits) != keyUsageBits)
          {
            return false;
          }
        }
      }
    }
    catch (Exception e)
    {
      return false;
    }
    return true;
  }
}

代码示例来源:origin: com.madgag/sc-light-jdk15on

public static DERBitString getInstance(Object obj)   // needs to be DERBitString for other VMs
{
  if (obj instanceof KeyUsage)
  {
    return (KeyUsage)obj;
  }
  if (obj instanceof X509Extension)
  {
    return new KeyUsage(DERBitString.getInstance(X509Extension.convertValueToObject((X509Extension)obj)));
  }
  return new KeyUsage(DERBitString.getInstance(obj));
}

代码示例来源:origin: com.madgag.spongycastle/prov

buf.append(KeyUsage.getInstance(dIn.readObject())).append(nl);

代码示例来源:origin: com.madgag.spongycastle/bctls-jdk15on

private boolean isSuitableKeyUsage(int keyUsageBits, X509Certificate c)
{
  try
  {
    Extensions exts = TBSCertificate.getInstance(c.getTBSCertificate()).getExtensions();
    if (exts != null)
    {
      KeyUsage ku = KeyUsage.fromExtensions(exts);
      if (ku != null)
      {
        int bits = ku.getBytes()[0] & 0xff;
        if ((bits & keyUsageBits) != keyUsageBits)
        {
          return false;
        }
      }
    }
  }
  catch (Exception e)
  {
    return false;
  }
  return true;
}

代码示例来源:origin: com.madgag/scprov-jdk15on

buf.append(new KeyUsage((DERBitString)dIn.readObject())).append(nl);

代码示例来源:origin: com.madgag/sc-light-jdk15on

static void validateKeyUsage(X509CertificateStructure c, int keyUsageBits) throws IOException
{
  X509Extensions exts = c.getTBSCertificate().getExtensions();
  if (exts != null)
  {
    X509Extension ext = exts.getExtension(X509Extension.keyUsage);
    if (ext != null)
    {
      DERBitString ku = KeyUsage.getInstance(ext);
      int bits = ku.getBytes()[0] & 0xff;
      if ((bits & keyUsageBits) != keyUsageBits)
      {
        throw new TlsFatalAlert(AlertDescription.certificate_unknown);
      }
    }
  }
}

代码示例来源:origin: com.madgag.spongycastle/bctls-jdk15on

protected void validateKeyUsage(int keyUsageBits)
  throws IOException
{
  Extensions exts;
  try
  {
    exts = TBSCertificate.getInstance(certificate.getTBSCertificate()).getExtensions();
  }
  catch (CertificateEncodingException e)
  {
    throw new TlsCryptoException("unable to parse certificate extensions: " + e.getMessage(), e);
  }
  if (exts != null)
  {
    KeyUsage ku = KeyUsage.fromExtensions(exts);
    if (ku != null)
    {
      int bits = ku.getBytes()[0] & 0xff;
      if ((bits & keyUsageBits) != keyUsageBits)
      {
        throw new TlsFatalAlert(AlertDescription.certificate_unknown);
      }
    }
  }
}

代码示例来源:origin: OPCFoundation/UA-Java-Legacy

Extension.keyUsage,
false,
new KeyUsage(KeyUsage.digitalSignature
    | KeyUsage.keyEncipherment
    | KeyUsage.nonRepudiation

代码示例来源:origin: OPCFoundation/UA-Java-Legacy

Extension.keyUsage,
false,
new KeyUsage(KeyUsage.digitalSignature
    | KeyUsage.keyEncipherment
    | KeyUsage.nonRepudiation

相关文章

微信公众号

最新文章

更多