X509Certificate 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
X 的抽象類別。
[Android.Runtime.Register("java/security/cert/X509Certificate", DoNotGenerateAcw=true)]
public abstract class X509Certificate : Java.Security.Cert.Certificate, IDisposable, 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
- 繼承
- 屬性
- 實作
備註
X.509 證書的摘要類別。 這提供了存取 X.509 憑證所有屬性的標準方式。
1996 年 6 月,ISO/IEC 與 ANSI X9 完成了基本的 X.509 v3 格式,以下於 ASN.1 中說明:
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }
這些憑證廣泛用於支援網際網路安全系統中的認證及其他功能。 常見應用包括隱私增強郵件(PEM)、傳輸層安全(SSL)、用於受信任軟體分發的程式碼簽章,以及安全電子交易(SET)。
這些證書由 em<證書授權機構>(<em,CA)管理並擔>保。 CA 是透過將資料置入 X.509 標準格式,然後對該資料進行數位簽章來建立憑證的服務。 CAs作為可信賴的第三方,負責在彼此不直接認識的負責人之間進行介紹。 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 檔。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| X509Certificate() |
X的構造子。 |
| X509Certificate(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| BasicConstraints |
回傳擴充套件中 |
| Class |
傳回這個 |
| CriticalExtensionOIDs |
取得此憑證中標記為關鍵的擴充功能的物件識別碼。 |
| ExtendedKeyUsage |
會獲得一個不可修改的字串清單,代表擴展金鑰使用擴充欄位的 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| HasUnsupportedCriticalExtension |
顯示此憑證是否包含不支援的關鍵擴充功能。 |
| IssuerAlternativeNames |
從擴充檔獲得一組不可變的發行者替代名稱 |
| IssuerDN |
回傳 |
| IssuerX500Principal |
從憑證中回傳發行人(發行人特殊名稱)的值為 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
X 的抽象類別。 (繼承來源 JavaObject) |
| JniPeerMembers |
X 的抽象類別。 |
| NonCriticalExtensionOIDs |
取得此憑證中標示為非關鍵的擴展的物件識別碼。 |
| NotAfter |
回傳 |
| NotBefore |
回傳 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| PublicKey |
回傳對應此憑證的公鑰。 (繼承來源 Certificate) |
| SerialNumber |
還給 |
| SigAlgName |
回傳憑證簽章的演算法名稱。 |
| SigAlgOID |
從憑證中回傳簽章演算法的 OID。 |
| SubjectAlternativeNames |
從擴充檔名(OID = 2)獲得一組不可變的主體替代名稱 |
| SubjectDN |
回傳 |
| SubjectX500Principal |
回傳憑證中的主體(主體區別名稱)值為 |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| Type |
回傳此證書的類型。 (繼承來源 Certificate) |
| Version |
回傳憑證 |
方法
| 名稱 | Description |
|---|---|
| CheckValidity() |
檢查該證書目前是否有效。 |
| CheckValidity(Date) |
檢查該日期是否在證書有效期內。 |
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
X 的抽象類別。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
X 的抽象類別。 (繼承來源 JavaObject) |
| Equals(Object) |
X 的抽象類別。 (繼承來源 JavaObject) |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| GetEncoded() |
回傳此憑證的編碼形式。 (繼承來源 Certificate) |
| GetExtensionValue(String) |
取得由傳入<字串識別的擴充值(>em<extnValue>/em |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| GetIssuerUniqueID() |
從憑證中取得 |
| GetKeyUsage() |
會得到一個布林陣列,代表擴展的位元 |
| GetSigAlgParams() |
從此憑證的簽章演算法取得 DER 編碼的簽章演算法參數。 |
| GetSignature() |
從憑證取得 |
| GetSubjectUniqueID() |
從憑證中取得 |
| GetTBSCertificate() |
取得由 DER 編碼的憑證資訊, |
| JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
X 的抽象類別。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳此憑證的字串表示。 (繼承來源 Certificate) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Verify(IPublicKey, Provider) |
驗證此憑證是否使用對應指定公鑰的私鑰簽署。 |
| Verify(IPublicKey, String) |
驗證此憑證是否使用對應指定公鑰的私鑰簽署。 (繼承來源 Certificate) |
| Verify(IPublicKey) |
驗證此憑證是否使用對應指定公鑰的私鑰簽署。 (繼承來源 Certificate) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| WriteReplace() |
替換要序號化的憑證。 (繼承來源 Certificate) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
X 的抽象類別。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
X 的抽象類別。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
X 的抽象類別。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
X 的抽象類別。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
X 的抽象類別。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
X 的抽象類別。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
X 的抽象類別。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
X 的抽象類別。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |