Langage

KeyStore Classe

Définition

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

[Android.Runtime.Register("java/security/KeyStore", DoNotGenerateAcw=true)]
public class KeyStore : Java.Lang.Object
[<Android.Runtime.Register("java/security/KeyStore", DoNotGenerateAcw=true)>]
type KeyStore = class
    inherit Object
Héritage
Attributs

Remarques

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

A KeyStore gère différents types d’entrées. Chaque type d’entrée implémente l’interface KeyStore.Entry . Trois implémentations de base KeyStore.Entry sont fournies :

<ul><li><b>KeyStore.PrivateKeyEntry</b>

Ce type d’entrée contient un chiffrement PrivateKey, qui est éventuellement stocké dans un format protégé pour empêcher l’accès non autorisé. Elle est également accompagnée d’une chaîne de certificats pour la clé publique correspondante.

Les clés privées et les chaînes de certificats sont utilisées par une entité donnée pour l’authentification automatique. Les applications pour cette authentification incluent les organisations de distribution de logiciels qui signent des fichiers JAR dans le cadre de la publication et/ou du logiciel de licence.

<li><b>KeyStore.SecretKeyEntry</b>

Ce type d’entrée contient un chiffrement SecretKey, qui est éventuellement stocké dans un format protégé pour empêcher l’accès non autorisé.

<li><b>KeyStore.TrustedCertificateEntry</b>

Ce type d’entrée contient une clé Certificate publique unique appartenant à une autre partie. Il est appelé certificat approuvé , car le propriétaire du magasin de clés approuve que la clé publique dans le certificat appartient effectivement à l’identité identifiée par le sujet (propriétaire) du certificat.

Ce type d’entrée peut être utilisé pour authentifier d’autres parties. </ul>

Chaque entrée d’un magasin de clés est identifiée par une chaîne « alias ». Dans le cas de clés privées et de leurs chaînes de certificats associées, ces chaînes distinguent les différentes façons dont l’entité peut s’authentifier. Par exemple, l’entité peut s’authentifier à l’aide de différentes autorités de certification ou utiliser différents algorithmes de clé publique.

Indique si les alias respectent la casse dépend de l’implémentation. Pour éviter les problèmes, il est recommandé de ne pas utiliser d’alias dans un Magasin de clés qui diffèrent uniquement dans le cas.

Si les magasins de clés sont persistants et les mécanismes utilisés par le magasin de clés s’il est persistant, ne sont pas spécifiés ici. Cela permet d’utiliser diverses techniques pour protéger les clés sensibles (par exemple, privées ou secrètes). Les cartes à puce ou d’autres moteurs de chiffrement intégrés (SafeKeyper) sont une option et des mécanismes plus simples tels que les fichiers peuvent également être utilisés (dans divers formats).

Les méthodes courantes pour demander un objet KeyStore incluent la spécification d’un fichier de magasin de clés existant, en s’appuyant sur le type par défaut et en fournissant un type de magasin de clés spécifique.

<ul><li>Pour spécifier un fichier de magasin de clés existant :

// get keystore password
               char[] password = getPassword();

               // probe the keystore file and load the keystore entries
               KeyStore ks = KeyStore.getInstance(new File("keyStoreName"), password);

Le système sonde le fichier spécifié pour déterminer son type de magasin de clés et retourner une implémentation de magasin de clés avec ses entrées déjà chargées. Lorsque cette approche est utilisée, il n’est pas nécessaire d’appeler la méthode du magasin de #load(java.io.InputStream, char[]) load clés.

<li>Pour vous appuyer sur le type par défaut :

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

Le système retourne une implémentation de magasin de clés pour le type par défaut.

<li>Pour fournir un type de magasin de clés spécifique :

KeyStore ks = KeyStore.getInstance("JKS");

Le système retourne l’implémentation la plus préférée du type de magasin de clés spécifié disponible dans l’environnement. </ul>

Avant qu’un magasin de clés soit accessible, il doit être #load(java.io.InputStream, char[]) loaded.

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

               // get user password and file input stream
               char[] password = getPassword();

               try (FileInputStream fis = new FileInputStream("keyStoreName")) {
                   ks.load(fis, password);
               }

Pour créer un magasin de clés vide à l’aide de la méthode ci-dessus load , passez null en tant qu’argument InputStream .

Une fois le magasin de clés chargé, il est possible de lire des entrées existantes à partir du magasin de clés ou d’écrire de nouvelles entrées dans le magasin de clés :

KeyStore.ProtectionParameter protParam =
                   new KeyStore.PasswordProtection(password);

               // get my private key
               KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)
                   ks.getEntry("privateKeyAlias", protParam);
               PrivateKey myPrivateKey = pkEntry.getPrivateKey();

               // save my secret key
               javax.crypto.SecretKey mySecretKey;
               KeyStore.SecretKeyEntry skEntry =
                   new KeyStore.SecretKeyEntry(mySecretKey);
               ks.setEntry("secretKeyAlias", skEntry, protParam);

               // store away the keystore
               try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
                   ks.store(fos, password);
               }

Notez que même si le même mot de passe peut être utilisé pour charger le magasin de clés, protéger l’entrée de clé privée, protéger l’entrée de clé secrète et stocker le magasin de clés (comme indiqué dans l’exemple de code ci-dessus), différents mots de passe ou d’autres paramètres de protection peuvent également être utilisés.

Android fournit les types suivants : tableKeyStorethead<>tr<>th<Algorithm>/th th<><Supported API Levels>/th<>/tr/thead<>tbody<>tr<><> td<AndroidCAStore>/td td<><14+>/td<>/tr tr<><>tr td<AndroidKeyStore>/td td<18+>/td<><>/tr tr<>class="déprécié »<><><>td BCPKCS12</td><td>1-8</td></tr tr><><>td BKS</td td><>1+</td></tr tr><><td>BouncyCastle</td td><>1+</td></tr tr><><>PKCS12</td td 1+>/td<><></tr tr tr><class="déprécié"><td>PKCS12-DEF</td><td>1-8</td></tr></tbody></table>

Ces types sont décrits dans la section KeyStore de la documentation relative au nom d’algorithme standard de l’architecture de chiffrement Java.

Ajouté dans la version 1.2.

Java documentation pour java.security.KeyStore.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Constructeurs

Nom Description
KeyStore(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

KeyStore(KeyStoreSpi, Provider, String)

Crée un objet KeyStore du type donné et encapsule l’implémentation du fournisseur donné (objet SPI) dans celui-ci.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
DefaultType

Retourne le type de magasin de clés par défaut tel que spécifié par la keystore.type propriété de sécurité, ou la chaîne « jks » (acronyme de « Java magasin de clés ») si aucune propriété de ce type n’existe.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
JniPeerMembers

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
Provider

Retourne le fournisseur de ce magasin de clés.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Type

Retourne le type de ce magasin de clés.

Méthodes

Nom Description
Aliases()

Répertorie tous les noms d’alias de ce magasin de clés.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
ContainsAlias(String)

Vérifie si l’alias donné existe dans ce magasin de clés.

DeleteEntry(String)

Supprime l’entrée identifiée par l’alias donné de ce magasin de clés.

Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
EntryInstanceOf(String, Class)

Détermine si le magasin Entry de clés pour le spécifié alias est une instance ou une sous-classe du magasin de clés spécifié entryClass.

Equals(Object)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetCertificate(String)

Retourne le certificat associé à l’alias donné.

GetCertificateAlias(Certificate)

Retourne le nom (alias) de la première entrée de magasin de clés dont le certificat correspond au certificat donné.

GetCertificateChain(String)

Retourne la chaîne de certificats associée à l’alias donné.

GetCreationDate(String)

Retourne la date de création de l’entrée identifiée par l’alias donné.

GetEntry(String, KeyStore+IProtectionParameter)

Obtient un magasin de Entry clés pour l’alias spécifié avec le paramètre de protection spécifié.

GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
GetInstance(File, Char[])

Retourne un objet de magasin de clés chargé du type de magasin de clés approprié.

GetInstance(File, KeyStore+ILoadStoreParameter)

Sonde un fichier de magasin de clés et retourne un magasin de clés chargé du type détecté.

GetInstance(String, Provider)

Retourne un objet de magasin de clés du type spécifié.

GetInstance(String, String)

Retourne un objet de magasin de clés du type spécifié.

GetInstance(String)

Retourne un objet de magasin de clés du type spécifié.

GetKey(String, Char[])

Retourne la clé associée à l’alias donné, en utilisant le mot de passe donné pour la récupérer.

IsCertificateEntry(String)

Retourne true si l’entrée identifiée par l’alias donné a été créée par un appel à setCertificateEntry, ou créée par un appel à setEntry avec un TrustedCertificateEntry.

IsKeyEntry(String)

Retourne true si l’entrée identifiée par l’alias donné a été créée par un appel à setKeyEntry, ou créée par un appel avec setEntry un PrivateKeyEntry ou un SecretKeyEntry.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Load(KeyStore+ILoadStoreParameter)

Charge ce KeyStore à partir du flux d’entrée donné.

Load(Stream, Char[])

Charge ce KeyStore à partir du flux d’entrée donné.

Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
SetCertificateEntry(String, Certificate)

Affecte le certificat approuvé donné à l’alias donné.

SetEntry(String, KeyStore+IEntry, KeyStore+IProtectionParameter)

Enregistre un magasin Entry de clés sous l’alias spécifié.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetKeyEntry(String, Byte[], Certificate[])

Affecte la clé donnée (qui a déjà été protégée) à l’alias donné.

SetKeyEntry(String, IKey, Char[], Certificate[])

Affecte la clé donnée à l’alias donné, en la protégeant avec le mot de passe donné.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
Size()

Récupère le nombre d’entrées dans ce magasin de clés.

Store(KeyStore+ILoadStoreParameter)

Stocke ce magasin de clés dans le flux de sortie donné et protège son intégrité avec le mot de passe donné.

Store(Stream, Char[])

Stocke ce magasin de clés dans le flux de sortie donné et protège son intégrité avec le mot de passe donné.

ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Cette classe représente une installation de stockage pour les clés de chiffrement et les certificats.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à