X509Certificate 类

定义

X 的抽象类。

[Android.Runtime.Register("java/security/cert/X509Certificate", DoNotGenerateAcw=true)]
public abstract class X509Certificate : Java.Security.Cert.Certificate, IDisposable, Java.Interop.IJavaPeerable, Java.Security.Cert.IX509Extension
[<Android.Runtime.Register("java/security/cert/X509Certificate", DoNotGenerateAcw=true)>]
type X509Certificate = class
    inherit Certificate
    interface IX509Extension
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
继承
X509Certificate
属性
实现

注解

X.509 证书的抽象类。 这提供了访问 X.509 证书的所有属性的标准方法。

1996 年 6 月,ISO/IEC 和 ANSI X9 完成了基本 X.509 v3 格式,ASN.1 中如下所述:

Certificate  ::=  SEQUENCE  {
                tbsCertificate       TBSCertificate,
                signatureAlgorithm   AlgorithmIdentifier,
                signature            BIT STRING  }

这些证书通常用于支持 Internet 安全系统中的身份验证和其他功能。 常见应用程序包括隐私增强邮件(PEM)、传输层安全性(SSL)、受信任的软件分发的代码签名以及安全电子交易(SET)。

这些证书由 <em>证书颁发机构</em> (CA)管理并保证。 CA 是一种服务,它通过将数据置于 X.509 标准格式,然后对数据进行数字签名来创建证书。 CA 充当受信任的第三方,在对彼此没有直接了解的主体之间进行介绍。 CA 证书本身或由其他一些 CA(例如“根”CA)签名。

有关详细信息,请参阅 RFC 3280:Internet X.509 公钥基础结构证书和 CRL 配置文件

ASN.1 的定义 tbsCertificate 为:

TBSCertificate  ::=  SEQUENCE  {
                version         [0]  EXPLICIT Version DEFAULT v1,
                serialNumber         CertificateSerialNumber,
                signature            AlgorithmIdentifier,
                issuer               Name,
                validity             Validity,
                subject              Name,
                subjectPublicKeyInfo SubjectPublicKeyInfo,
                issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                                     -- If present, version must be v2 or v3
                subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                                     -- If present, version must be v2 or v3
                extensions      [3]  EXPLICIT Extensions OPTIONAL
                                     -- If present, version must be v3
                }

证书使用证书工厂实例化。 下面是如何实例化 X.509 证书的示例:

try (InputStream inStream = new FileInputStream("fileName-of-cert")) {
                CertificateFactory cf = CertificateFactory.getInstance("X.509");
                X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
            }

适用于 . 的 java.security.cert.X509CertificateJava 文档

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
X509Certificate()

X 的构造函数。

X509Certificate(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

名称 说明
BasicConstraints

从扩展返回证书约束 BasicContraints 的路径长度。

Class

返回此 Object的运行时类。

(继承自 Object)
CriticalExtensionOIDs

X 的抽象类。

ExtendedKeyUsage

获取字符串的不可修改列表,该列表表示扩展密钥使用扩展插件字段的 OBJECT IDENTIFIER ExtKeyUsageSyntax (OID = 2)。

Handle

基础 Android 实例的句柄。

(继承自 Object)
HasUnsupportedCriticalExtension

X 的抽象类。

IssuerAlternativeNames

IssuerAltName 扩展获取颁发者可选名称的不可变集合(OID = 2)。

IssuerDN

issuer 实现特定 Principal 对象的形式返回(颁发者可分辨名称)。

IssuerX500Principal

以证书的形式 X500Principal返回颁发者(颁发者可分辨名称)值。

JniIdentityHashCode

X 的抽象类。

(继承自 Object)
JniPeerMembers

X 的抽象类。

NonCriticalExtensionOIDs

X 的抽象类。

NotAfter

返回 notAfter 证书有效期的日期。

NotBefore

返回 notBefore 证书有效期的日期。

PeerReference

X 的抽象类。

(继承自 Object)
PublicKey

返回与此证书对应的公钥。

(继承自 Certificate)
SerialNumber

返回 serialNumber 证书。

SigAlgName

返回证书签名的算法的名称。

SigAlgOID

从证书返回签名算法的 OID。

SubjectAlternativeNames

SubjectAltName 扩展中获取使用者可选名称的不可变集合(OID = 2)。

SubjectDN

subject 实现特定 Principal 对象的形式返回(使用者可分辨名称)。

SubjectX500Principal

以证书的形式 X500Principal返回使用者(使用者可分辨名称)值。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

Type

返回此证书的类型。

(继承自 Certificate)
Version

返回证书 version (版本号)。

方法

名称 说明
CheckValidity()

检查证书当前是否有效。

CheckValidity(Date)

检查给定日期是否在证书的有效期内。

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

X 的抽象类。

(继承自 Object)
Dispose(Boolean)

X 的抽象类。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
GetEncoded()

返回此证书的编码形式。

(继承自 Certificate)
GetExtensionValue(String)

获取由传入oid字符串标识的扩展值(<em>extnValue</em>)的 DER 编码 OCTET 字符串。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetIssuerUniqueID()

从证书获取 issuerUniqueID 值。

GetKeyUsage()

获取表示扩展位的 KeyUsage 布尔数组(OID = 2)。

GetSigAlgParams()

从此证书的签名算法中获取 DER 编码的签名算法参数。

GetSignature()

从证书获取 signature 值(原始签名位)。

GetSubjectUniqueID()

从证书获取 subjectUniqueID 值。

GetTBSCertificate()

获取 DER 编码的证书信息, tbsCertificate 该证书来自此证书。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

X 的抽象类。

(继承自 Object)
ToString()

返回此证书的字符串表示形式。

(继承自 Certificate)
UnregisterFromRuntime()

X 的抽象类。

(继承自 Object)
Verify(IPublicKey, Provider)

验证此证书是否已使用与指定的公钥相对应的私钥进行签名。

Verify(IPublicKey, String)

验证此证书是否已使用与指定的公钥相对应的私钥进行签名。

(继承自 Certificate)
Verify(IPublicKey)

验证此证书是否已使用与指定的公钥相对应的私钥进行签名。

(继承自 Certificate)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
WriteReplace()

替换要序列化的证书。

(继承自 Certificate)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

X 的抽象类。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

X 的抽象类。

(继承自 Object)
IJavaPeerable.Finalized()

X 的抽象类。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

X 的抽象类。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

X 的抽象类。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

X 的抽象类。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

X 的抽象类。

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

X 的抽象类。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于