語言

HttpEngine.Builder.AddPublicKeyPins 方法

定義

為某個主機釘選一組公鑰。

[Android.Runtime.Register("addPublicKeyPins", "(Ljava/lang/String;Ljava/util/Set;ZLjava/time/Instant;)Landroid/net/http/HttpEngine$Builder;", "GetAddPublicKeyPins_Ljava_lang_String_Ljava_util_Set_ZLjava_time_Instant_Handler", ApiSince=34)]
public virtual Android.Net.Http.HttpEngine.Builder AddPublicKeyPins(string hostName, System.Collections.Generic.ICollection<byte[]> pinsSha256, bool includeSubdomains, Java.Time.Instant expirationInstant);
[<Android.Runtime.Register("addPublicKeyPins", "(Ljava/lang/String;Ljava/util/Set;ZLjava/time/Instant;)Landroid/net/http/HttpEngine$Builder;", "GetAddPublicKeyPins_Ljava_lang_String_Ljava_util_Set_ZLjava_time_Instant_Handler", ApiSince=34)>]
abstract member AddPublicKeyPins : string * System.Collections.Generic.ICollection<byte[]> * bool * Java.Time.Instant -> Android.Net.Http.HttpEngine.Builder
override this.AddPublicKeyPins : string * System.Collections.Generic.ICollection<byte[]> * bool * Java.Time.Instant -> Android.Net.Http.HttpEngine.Builder

參數

hostName
String

應將公鑰釘選的主機名稱。 僅由數字和點字元組成的主機會被視為無效。 這個值不可能為零值。

pinsSha256
ICollection<Byte[]>

一組別針。 每個腳位都是 SHA-256 加密雜湊,該 ASN.1 表示主機 X.509 證書的主體公鑰資訊(SPKI)。 使用 Certificate.getPublicKey() 和 Key.getEncoded() 來取得 SPKI 的 DER 編碼 ASN.1 表示。 雖然此方法不強制必須有備用腳位,以防主私鑰控制權遺失,但強烈建議提供備用腳位。 這個值不可能為零值。

includeSubdomains
Boolean

指示是否應將釘選政策套用於 hostName 的子網域。

expirationInstant
Instant

指定腳位的過期時刻。 這個值不可能為零值。

傳回

建造者用來促進連鎖。 這個值不可能為零值。

屬性

備註

為某個主機釘選一組公鑰。 透過釘選一組公鑰 pinsSha256,與 hostName 的通訊必須用來自釘選公鑰集合的公鑰憑證來認證。 應用程式可以釘選根憑證的公開金鑰、任何中介憑證或終端憑證。 如果主機的憑證鏈中沒有任何公開金鑰存在,即使主機嘗試用裝置可信憑證庫允許的憑證進行認證,認證將失敗且無法建立安全通訊。

以同一主機名稱多次呼叫此方法,會覆蓋先前設定的主機腳位。

關於公鑰釘釘的更多資訊可參考 RFC 7469。

Android 參考資料。android.net.http.HttpEngine.Builder.addPublicKeyPins

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於