Create

Create(byte[], SecureString)

SkaparCertificateHolder objekt som använder byte-arrayen för PKCS12-arkivet och dess lösenord.

public static CertificateHolder Create(byte[] certBytes, SecureString password)
ParameterTypBeskrivning
certBytesByte[]En byte-array som innehåller data från ett X.509-certifikat.
passwordSecureStringLösenordet som krävs för att komma åt X.509-certifikatdata.

Returvärde

Ett exempel påCertificateHolder

Undantag

undantagskick
InvalidParameterExceptionKastad omcertBytes ärnull
InvalidParameterExceptionKastad ompassword ärnull
SecurityExceptionUtlöses om PKCS12-arkivet inte innehåller några alias
IOExceptionKörs om det finns fel lösenord eller en skadad fil.

Exempel

Visar hur man skapar CertificateHolder-objekt.

// Nedan följer fyra sätt att skapa CertificateHolder-objekt.
// 1 - Ladda in en PKCS #12-fil i en byte-array och använd dess lösenord:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Ladda in en PKCS #12-fil i en byte-array och använd ett säkert lösenord:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Om certifikatet har privata nycklar som motsvarar alias,
// vi kan använda aliasen för att hämta deras respektive nycklar. Först kontrollerar vi om det finns giltiga 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 - Använd ett giltigt alias:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Skicka "null" som alias för att använda det första tillgängliga aliaset som returnerar en privat nyckel:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Se även


Create(byte[], string)

SkaparCertificateHolder objekt som använder byte-arrayen för PKCS12-arkivet och dess lösenord.

public static CertificateHolder Create(byte[] certBytes, string password)
ParameterTypBeskrivning
certBytesByte[]En byte-array som innehåller data från ett X.509-certifikat.
passwordStringLösenordet som krävs för att komma åt X.509-certifikatdata.

Returvärde

Ett exempel påCertificateHolder

Undantag

undantagskick
InvalidParameterExceptionKastad omcertBytes ärnull
InvalidParameterExceptionKastad ompassword ärnull
SecurityExceptionUtlöses om PKCS12-arkivet inte innehåller några alias
IOExceptionKörs om det finns fel lösenord eller en skadad fil.

Exempel

Visar hur man skapar CertificateHolder-objekt.

// Nedan följer fyra sätt att skapa CertificateHolder-objekt.
// 1 - Ladda in en PKCS #12-fil i en byte-array och använd dess lösenord:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Ladda in en PKCS #12-fil i en byte-array och använd ett säkert lösenord:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Om certifikatet har privata nycklar som motsvarar alias,
// vi kan använda aliasen för att hämta deras respektive nycklar. Först kontrollerar vi om det finns giltiga 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 - Använd ett giltigt alias:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Skicka "null" som alias för att använda det första tillgängliga aliaset som returnerar en privat nyckel:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Se även


Create(string, string)

SkaparCertificateHolderobjekt med sökvägen till PKCS12-arkivet och dess lösenord.

public static CertificateHolder Create(string fileName, string password)
ParameterTypBeskrivning
fileNameStringNamnet på en certifikatfil.
passwordStringLösenordet som krävs för att komma åt X.509-certifikatdata.

Returvärde

Ett exempel påCertificateHolder

Undantag

undantagskick
InvalidParameterExceptionKastad omfileName ärnull
InvalidParameterExceptionKastad ompassword ärnull
SecurityExceptionUtlöses om PKCS12-arkivet inte innehåller några alias
IOExceptionKörs om det finns fel lösenord eller en skadad fil.

Exempel

Visar hur man signerar dokument digitalt.

// Skapa ett X.509-certifikat från ett PKCS#12-arkiv, vilket ska innehålla en privat nyckel.
CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

// Skapa en kommentar och ett datum som kommer att tillämpas med vår nya digitala signatur.
SignOptions signOptions = new SignOptions
{
    Comments = "My comment", 
    SignTime = DateTime.Now
};

// Hämta ett osignerat dokument från det lokala filsystemet via en filström,
// skapa sedan en signerad kopia av den som bestäms av filnamnet på utdatafilströmmen.
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);
    }
}

Se även


Create(string, string, string)

SkaparCertificateHolder objekt med sökvägen till PKCS12-arkivet, dess lösenord och alias med vilket privat nyckel och certifikat som ska hittas.

public static CertificateHolder Create(string fileName, string password, string alias)
ParameterTypBeskrivning
fileNameStringNamnet på en certifikatfil.
passwordStringLösenordet som krävs för att komma åt X.509-certifikatdata.
aliasStringDet associerade aliaset för ett certifikat och dess privata nyckel

Returvärde

Ett exempel påCertificateHolder

Undantag

undantagskick
InvalidParameterExceptionKastad omfileName ärnull
InvalidParameterExceptionKastad ompassword ärnull
SecurityExceptionUtlöses om PKCS12-arkivet inte innehåller några alias
IOExceptionKörs om det finns fel lösenord eller en skadad fil.
SecurityExceptionUtlöses om det inte finns någon privat nyckel med angivet aliaset

Exempel

Visar hur man skapar CertificateHolder-objekt.

// Nedan följer fyra sätt att skapa CertificateHolder-objekt.
// 1 - Ladda in en PKCS #12-fil i en byte-array och använd dess lösenord:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Ladda in en PKCS #12-fil i en byte-array och använd ett säkert lösenord:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Om certifikatet har privata nycklar som motsvarar alias,
// vi kan använda aliasen för att hämta deras respektive nycklar. Först kontrollerar vi om det finns giltiga 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 - Använd ett giltigt alias:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Skicka "null" som alias för att använda det första tillgängliga aliaset som returnerar en privat nyckel:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Se även