Create

Create(byte[], SecureString)

OluştururCertificateHolder PKCS12 deposunun bayt dizisini ve parolasını kullanan nesne.

public static CertificateHolder Create(byte[] certBytes, SecureString password)
ParametreTipTanım
certBytesByte[]X.509 sertifikasından verileri içeren bir bayt dizisi.
passwordSecureStringX.509 sertifika verilerine erişmek için gereken şifre.

Geri dönüş değeri

Bir örneğiCertificateHolder

istisnalar

istisnaşart
InvalidParameterExceptionEğer atılırsacertBytes dır-dirhükümsüz
InvalidParameterExceptionEğer atılırsapassword dır-dirhükümsüz
SecurityExceptionPKCS12 deposunda takma ad yoksa atılır
IOExceptionYanlış şifre veya bozuk dosya varsa atılır.

Örnekler

SertifikaHolder nesnelerinin nasıl oluşturulacağını gösterir.

// Aşağıda SertifikaHolder nesneleri oluşturmanın dört yolu verilmiştir.
// 1 - Bir PKCS #12 dosyasını bayt dizisine yükleyin ve şifresini uygulayın:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Bir bayt dizisine PKCS #12 dosyasını yükleyin ve güvenli bir parola uygulayın:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Sertifikanın takma adlara karşılık gelen özel anahtarları varsa,
// ilgili anahtarları almak için takma adları kullanabiliriz. Öncelikle geçerli takma adları kontrol edeceğiz.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator();

    while (enumerator.MoveNext())
    {
        if (enumerator.Current != null)
        {
            string currentAlias = enumerator.Current.ToString();
            if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate)
            {
                Console.WriteLine($"Valid alias found: {enumerator.Current}");
            }
        }
    }
}

// 3 - Geçerli bir takma ad kullanın:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Özel anahtar döndüren ilk mevcut takma adı kullanmak için takma ad olarak "null"u iletin:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Ayrıca bakınız


Create(byte[], string)

OluştururCertificateHolder PKCS12 deposunun bayt dizisini ve parolasını kullanan nesne.

public static CertificateHolder Create(byte[] certBytes, string password)
ParametreTipTanım
certBytesByte[]X.509 sertifikasından verileri içeren bir bayt dizisi.
passwordStringX.509 sertifika verilerine erişmek için gereken şifre.

Geri dönüş değeri

Bir örneğiCertificateHolder

istisnalar

istisnaşart
InvalidParameterExceptionEğer atılırsacertBytes dır-dirhükümsüz
InvalidParameterExceptionEğer atılırsapassword dır-dirhükümsüz
SecurityExceptionPKCS12 deposunda takma ad yoksa atılır
IOExceptionYanlış şifre veya bozuk dosya varsa atılır.

Örnekler

SertifikaHolder nesnelerinin nasıl oluşturulacağını gösterir.

// Aşağıda SertifikaHolder nesneleri oluşturmanın dört yolu verilmiştir.
// 1 - Bir PKCS #12 dosyasını bayt dizisine yükleyin ve şifresini uygulayın:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Bir bayt dizisine PKCS #12 dosyasını yükleyin ve güvenli bir parola uygulayın:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Sertifikanın takma adlara karşılık gelen özel anahtarları varsa,
// ilgili anahtarları almak için takma adları kullanabiliriz. Öncelikle geçerli takma adları kontrol edeceğiz.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator();

    while (enumerator.MoveNext())
    {
        if (enumerator.Current != null)
        {
            string currentAlias = enumerator.Current.ToString();
            if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate)
            {
                Console.WriteLine($"Valid alias found: {enumerator.Current}");
            }
        }
    }
}

// 3 - Geçerli bir takma ad kullanın:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Özel anahtar döndüren ilk mevcut takma adı kullanmak için takma ad olarak "null"u iletin:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Ayrıca bakınız


Create(string, string)

OluştururCertificateHolder PKCS12 deposunun yolunu ve şifresini kullanan nesne.

public static CertificateHolder Create(string fileName, string password)
ParametreTipTanım
fileNameStringBir sertifika dosyasının adı.
passwordStringX.509 sertifika verilerine erişmek için gereken şifre.

Geri dönüş değeri

Bir örneğiCertificateHolder

istisnalar

istisnaşart
InvalidParameterExceptionEğer atılırsafileName dır-dirhükümsüz
InvalidParameterExceptionEğer atılırsapassword dır-dirhükümsüz
SecurityExceptionPKCS12 deposunda takma ad yoksa atılır
IOExceptionYanlış şifre veya bozuk dosya varsa atılır.

Örnekler

Belgelerin dijital olarak nasıl imzalanacağını gösterir.

// PKCS#12 deposundan özel anahtar içermesi gereken bir X.509 sertifikası oluşturun.
CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw");

// Yeni dijital imzamızla uygulanacak bir yorum ve tarih oluşturun.
SignOptions signOptions = new SignOptions
{
    Comments = "My comment", 
    SignTime = DateTime.Now
};

// İmzasız bir belgeyi dosya akışı aracılığıyla yerel dosya sisteminden alın,
// ardından çıktı dosyası akışının dosya adına göre belirlenen imzalı bir kopyasını oluşturun.
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);
    }
}

Ayrıca bakınız


Create(string, string, string)

OluştururCertificateHolder PKCS12 deposunun yolunu, şifresini ve takma adını kullanarak hangi özel anahtar ve sertifikanın bulunacağını kullanan nesne.

public static CertificateHolder Create(string fileName, string password, string alias)
ParametreTipTanım
fileNameStringBir sertifika dosyasının adı.
passwordStringX.509 sertifika verilerine erişmek için gereken şifre.
aliasStringBir sertifika ve özel anahtarı için ilişkili takma ad

Geri dönüş değeri

Bir örneğiCertificateHolder

istisnalar

istisnaşart
InvalidParameterExceptionEğer atılırsafileName dır-dirhükümsüz
InvalidParameterExceptionEğer atılırsapassword dır-dirhükümsüz
SecurityExceptionPKCS12 deposunda takma ad yoksa atılır
IOExceptionYanlış şifre veya bozuk dosya varsa atılır.
SecurityExceptionBelirtilen takma adda özel anahtar yoksa atılır

Örnekler

SertifikaHolder nesnelerinin nasıl oluşturulacağını gösterir.

// Aşağıda SertifikaHolder nesneleri oluşturmanın dört yolu verilmiştir.
// 1 - Bir PKCS #12 dosyasını bayt dizisine yükleyin ve şifresini uygulayın:
byte[] certBytes = File.ReadAllBytes(MyDir + "morzal.pfx");
CertificateHolder.Create(certBytes, "aw");

// 2 - Bir bayt dizisine PKCS #12 dosyasını yükleyin ve güvenli bir parola uygulayın:
SecureString password = new NetworkCredential("", "aw").SecurePassword;
CertificateHolder.Create(certBytes, password);

// Sertifikanın takma adlara karşılık gelen özel anahtarları varsa,
// ilgili anahtarları almak için takma adları kullanabiliriz. Öncelikle geçerli takma adları kontrol edeceğiz.
using (FileStream certStream = new FileStream(MyDir + "morzal.pfx", FileMode.Open))
{
    Pkcs12Store pkcs12Store = new Pkcs12StoreBuilder().Build();
    pkcs12Store.Load(certStream, "aw".ToCharArray());
    IEnumerator enumerator = pkcs12Store.Aliases.GetEnumerator();

    while (enumerator.MoveNext())
    {
        if (enumerator.Current != null)
        {
            string currentAlias = enumerator.Current.ToString();
            if (pkcs12Store.IsKeyEntry(currentAlias) && pkcs12Store.GetKey(currentAlias).Key.IsPrivate)
            {
                Console.WriteLine($"Valid alias found: {enumerator.Current}");
            }
        }
    }
}

// 3 - Geçerli bir takma ad kullanın:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", "c20be521-11ea-4976-81ed-865fbbfc9f24");

// 4 - Özel anahtar döndüren ilk mevcut takma adı kullanmak için takma ad olarak "null"u iletin:
CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);

Ayrıca bakınız