語言

X509Certificate 類別

定義

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

回傳擴充套件中 BasicContraints 憑證約束的路徑長度。

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
CriticalExtensionOIDs

取得此憑證中標記為關鍵的擴充功能的物件識別碼。

ExtendedKeyUsage

會獲得一個不可修改的字串清單,代表擴展金鑰使用擴充欄位的 ExtKeyUsageSyntax 物件識別碼(OID = 2)。

Handle

基礎Android實例的句柄。

(繼承來源 Object)
HasUnsupportedCriticalExtension

顯示此憑證是否包含不支援的關鍵擴充功能。

IssuerAlternativeNames

從擴充檔獲得一組不可變的發行者替代名稱 IssuerAltName 集合,(OID = 2.

IssuerDN

回傳 issuer (發行者區分名稱)作為實作特定 Principal 物件。

IssuerX500Principal

從憑證中回傳發行人(發行人特殊名稱)的值為 X500Principal

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

X 的抽象類別。

(繼承來源 JavaObject)
JniPeerMembers

X 的抽象類別。

NonCriticalExtensionOIDs

取得此憑證中標示為非關鍵的擴展的物件識別碼。

NotAfter

回傳 notAfter 證書有效期的日期。

NotBefore

回傳 notBefore 證書有效期的日期。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
PublicKey

回傳對應此憑證的公鑰。

(繼承來源 Certificate)
SerialNumber

還給 serialNumber 證書。

SigAlgName

回傳憑證簽章的演算法名稱。

SigAlgOID

從憑證中回傳簽章演算法的 OID。

SubjectAlternativeNames

從擴充檔名(OID = 2)獲得一組不可變的主體替代名稱 SubjectAltName 集合。

SubjectDN

回傳 subject (主體區分名稱)作為實作特定 Principal 物件。

SubjectX500Principal

回傳憑證中的主體(主體區別名稱)值為 X500Principal

ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

Type

回傳此證書的類型。

(繼承來源 Certificate)
Version

回傳憑證 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>/emoid)的 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)
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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

X 的抽象類別。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於