Create

Create(byte[], SecureString)

CréeCertificateHolder objet utilisant un tableau d’octets de stockage PKCS12 et son mot de passe.

public static CertificateHolder Create(byte[] certBytes, SecureString password)
ParamètreTaperLa description
certBytesByte[]Un tableau d’octets contenant des données provenant d’un certificat X.509.
passwordSecureStringLe mot de passe requis pour accéder aux données du certificat X.509.

Return_Value

Un exemple deCertificateHolder

Exceptions

exceptioncondition
InvalidParameterExceptionJeté sicertBytes estnul
InvalidParameterExceptionJeté sipassword estnul
SecurityExceptionLancé si le magasin PKCS12 ne contient aucun alias
IOExceptionLancé s’il y a un mot de passe incorrect ou un fichier corrompu.

Exemples

Montre comment créer des objets CertificateHolder.

// Vous trouverez ci-dessous quatre façons de créer des objets CertificateHolder.
// 1 - Chargez un fichier PKCS #12 dans un tableau d'octets et appliquez son mot de passe :
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Chargez un fichier PKCS #12 dans un tableau d'octets et appliquez un mot de passe sécurisé :
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Si le certificat possède des clés privées correspondant à des alias,
// Nous pouvons utiliser les alias pour récupérer leurs clés respectives. Nous allons d'abord vérifier la validité des alias.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    foreach (string currentAlias in pkcs12Store.Aliases)
    {
        if ((currentAlias != null) &&
            (pkcs12Store.IsKeyEntry(currentAlias) &&
             pkcs12Store.GetKey(currentAlias).Key.IsPrivate))
        {
            Console.WriteLine($"Valid alias found: {currentAlias}");
        }
    }
}

// 3 - Utiliser un alias valide :
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Passez « null » comme alias afin d'utiliser le premier alias disponible qui renvoie une clé privée :
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Voir également


Create(byte[], string)

CréeCertificateHolder objet utilisant un tableau d’octets de stockage PKCS12 et son mot de passe.

public static CertificateHolder Create(byte[] certBytes, string password)
ParamètreTaperLa description
certBytesByte[]Un tableau d’octets contenant des données provenant d’un certificat X.509.
passwordStringLe mot de passe requis pour accéder aux données du certificat X.509.

Return_Value

Un exemple deCertificateHolder

Exceptions

exceptioncondition
InvalidParameterExceptionJeté sicertBytes estnul
InvalidParameterExceptionJeté sipassword estnul
SecurityExceptionLancé si le magasin PKCS12 ne contient aucun alias
IOExceptionLancé s’il y a un mot de passe incorrect ou un fichier corrompu.

Exemples

Montre comment créer des objets CertificateHolder.

// Vous trouverez ci-dessous quatre façons de créer des objets CertificateHolder.
// 1 - Chargez un fichier PKCS #12 dans un tableau d'octets et appliquez son mot de passe :
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Chargez un fichier PKCS #12 dans un tableau d'octets et appliquez un mot de passe sécurisé :
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Si le certificat possède des clés privées correspondant à des alias,
// Nous pouvons utiliser les alias pour récupérer leurs clés respectives. Nous allons d'abord vérifier la validité des alias.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    foreach (string currentAlias in pkcs12Store.Aliases)
    {
        if ((currentAlias != null) &&
            (pkcs12Store.IsKeyEntry(currentAlias) &&
             pkcs12Store.GetKey(currentAlias).Key.IsPrivate))
        {
            Console.WriteLine($"Valid alias found: {currentAlias}");
        }
    }
}

// 3 - Utiliser un alias valide :
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Passez « null » comme alias afin d'utiliser le premier alias disponible qui renvoie une clé privée :
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Voir également


Create(string, string)

CréeCertificateHolderobjet utilisant le chemin vers le magasin PKCS12 et son mot de passe.

public static CertificateHolder Create(string fileName, string password)
ParamètreTaperLa description
fileNameStringLe nom d’un fichier de certificat.
passwordStringLe mot de passe requis pour accéder aux données du certificat X.509.

Return_Value

Un exemple deCertificateHolder

Exceptions

exceptioncondition
InvalidParameterExceptionJeté sifileName estnul
InvalidParameterExceptionJeté sipassword estnul
SecurityExceptionLancé si le magasin PKCS12 ne contient aucun alias
IOExceptionLancé s’il y a un mot de passe incorrect ou un fichier corrompu.

Exemples

Montre comment signer numériquement des documents.

// Créez un certificat X.509 à partir d'un magasin PKCS#12, qui doit contenir une clé privée.
CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

// Créez un commentaire et une date qui seront appliqués avec notre nouvelle signature numérique.
SignOptions signOptions = new SignOptions
{
    Comments = "My comment", 
    SignTime = DateTime.Now
};

// Prendre un document non signé du système de fichiers local via un flux de fichiers,
// puis créez une copie signée de celui-ci déterminée par le nom de fichier du flux de fichiers de sortie.
using (Stream streamIn = new FileStream(MyDir + "Document.docx", FileMode.Open))
{
    using (Stream streamOut = new FileStream(ArtifactsDir + "DigitalSignatureUtil.SignDocument.docx", FileMode.OpenOrCreate))
    {
        DigitalSignatureUtil.Sign(streamIn, streamOut, certificateHolder, signOptions);
    }
}

Voir également


Create(string, string, string)

CréeCertificateHolder objet utilisant le chemin d’accès au magasin PKCS12, son mot de passe et l’alias à l’aide duquel la clé privée et le certificat seront trouvés.

public static CertificateHolder Create(string fileName, string password, string alias)
ParamètreTaperLa description
fileNameStringLe nom d’un fichier de certificat.
passwordStringLe mot de passe requis pour accéder aux données du certificat X.509.
aliasStringL’alias associé à un certificat et sa clé privée

Return_Value

Un exemple deCertificateHolder

Exceptions

exceptioncondition
InvalidParameterExceptionJeté sifileName estnul
InvalidParameterExceptionJeté sipassword estnul
SecurityExceptionLancé si le magasin PKCS12 ne contient aucun alias
IOExceptionLancé s’il y a un mot de passe incorrect ou un fichier corrompu.
SecurityExceptionLancé s’il n’y a pas de clé privée avec l’alias donné

Exemples

Montre comment créer des objets CertificateHolder.

// Vous trouverez ci-dessous quatre façons de créer des objets CertificateHolder.
// 1 - Chargez un fichier PKCS #12 dans un tableau d'octets et appliquez son mot de passe :
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Chargez un fichier PKCS #12 dans un tableau d'octets et appliquez un mot de passe sécurisé :
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Si le certificat possède des clés privées correspondant à des alias,
// Nous pouvons utiliser les alias pour récupérer leurs clés respectives. Nous allons d'abord vérifier la validité des alias.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    foreach (string currentAlias in pkcs12Store.Aliases)
    {
        if ((currentAlias != null) &&
            (pkcs12Store.IsKeyEntry(currentAlias) &&
             pkcs12Store.GetKey(currentAlias).Key.IsPrivate))
        {
            Console.WriteLine($"Valid alias found: {currentAlias}");
        }
    }
}

// 3 - Utiliser un alias valide :
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Passez « null » comme alias afin d'utiliser le premier alias disponible qui renvoie une clé privée :
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Voir également