当前位置: 首页>>代码示例>>C#>>正文


C# X509KeyStorageFlags类代码示例

本文整理汇总了C#中X509KeyStorageFlags的典型用法代码示例。如果您正苦于以下问题:C# X509KeyStorageFlags类的具体用法?C# X509KeyStorageFlags怎么用?C# X509KeyStorageFlags使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


X509KeyStorageFlags类属于命名空间,在下文中一共展示了X509KeyStorageFlags类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestRawData

        public static void TestRawData(X509KeyStorageFlags keyStorageFlags)
        {
            byte[] expectedRawData = (
                "308201e530820152a0030201020210d5b5bc1c458a558845" +
                "bff51cb4dff31c300906052b0e03021d05003011310f300d" +
                "060355040313064d794e616d65301e170d31303034303130" +
                "38303030305a170d3131303430313038303030305a301131" +
                "0f300d060355040313064d794e616d6530819f300d06092a" +
                "864886f70d010101050003818d0030818902818100b11e30" +
                "ea87424a371e30227e933ce6be0e65ff1c189d0d888ec8ff" +
                "13aa7b42b68056128322b21f2b6976609b62b6bc4cf2e55f" +
                "f5ae64e9b68c78a3c2dacc916a1bc7322dd353b32898675c" +
                "fb5b298b176d978b1f12313e3d865bc53465a11cca106870" +
                "a4b5d50a2c410938240e92b64902baea23eb093d9599e9e3" +
                "72e48336730203010001a346304430420603551d01043b30" +
                "39801024859ebf125e76af3f0d7979b4ac7a96a113301131" +
                "0f300d060355040313064d794e616d658210d5b5bc1c458a" +
                "558845bff51cb4dff31c300906052b0e03021d0500038181" +
                "009bf6e2cf830ed485b86d6b9e8dffdcd65efc7ec145cb93" +
                "48923710666791fcfa3ab59d689ffd7234b7872611c5c23e" +
                "5e0714531abadb5de492d2c736e1c929e648a65cc9eb63cd" +
                "84e57b5909dd5ddf5dbbba4a6498b9ca225b6e368b94913b" +
                "fc24de6b2bd9a26b192b957304b89531e902ffc91b54b237" +
                "bb228be8afcda26476").HexToByteArray();

            using (var c = new X509Certificate2(TestData.PfxData, TestData.PfxDataPassword, keyStorageFlags))
            {
                byte[] rawData = c.RawData;
                Assert.Equal(expectedRawData, rawData);
            }
        }
开发者ID:naamunds,项目名称:corefx,代码行数:31,代码来源:PfxTests.cs

示例2: FromBlob

        public static IStorePal FromBlob(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
        {
            ICertificatePal singleCert;

            if (CertificatePal.TryReadX509Der(rawData, out singleCert) ||
                CertificatePal.TryReadX509Pem(rawData, out singleCert))
            {
                // The single X509 structure methods shouldn't return true and out null, only empty
                // collections have that behavior.
                Debug.Assert(singleCert != null);

                return SingleCertToStorePal(singleCert);
            }

            List<ICertificatePal> certPals;

            if (PkcsFormatReader.TryReadPkcs7Der(rawData, out certPals) ||
                PkcsFormatReader.TryReadPkcs7Pem(rawData, out certPals) ||
                PkcsFormatReader.TryReadPkcs12(rawData, password, out certPals))
            {
                Debug.Assert(certPals != null);

                return ListToStorePal(certPals);
            }
            
            return null;
        }
开发者ID:rajeevkb,项目名称:corefx,代码行数:27,代码来源:StorePal.cs

示例3: FromBlob

        public static unsafe ICertificatePal FromBlob(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
        {
            // If we can see a hyphen, assume it's PEM.  Otherwise try DER-X509, then fall back to DER-PKCS12.
            SafeX509Handle cert;

            // PEM
            if (rawData[0] == '-')
            {
                using (SafeBioHandle bio = Interop.libcrypto.BIO_new(Interop.libcrypto.BIO_s_mem()))
                {
                    Interop.libcrypto.CheckValidOpenSslHandle(bio);

                    Interop.libcrypto.BIO_write(bio, rawData, rawData.Length);
                    cert = Interop.libcrypto.PEM_read_bio_X509_AUX(bio, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
                }

                Interop.libcrypto.CheckValidOpenSslHandle(cert);
            }

            // DER-X509
            cert = Interop.libcrypto.OpenSslD2I((ptr, b, i) => Interop.libcrypto.d2i_X509(ptr, b, i), rawData, checkHandle: false);

            if (!cert.IsInvalid)
            {
                return new OpenSslX509CertificateReader(cert);
            }

            // DER-PKCS12
            OpenSslPkcs12Reader pfx;

            if (OpenSslPkcs12Reader.TryRead(rawData, out pfx))
            {
                using (pfx)
                {
                    pfx.Decrypt(password);

                    ICertificatePal first = null;

                    foreach (OpenSslX509CertificateReader certPal in pfx.ReadCertificates())
                    {
                        // When requesting an X509Certificate2 from a PFX only the first entry is
                        // returned.  Other entries should be disposed.
                        if (first == null)
                        {
                            first = certPal;
                        }
                        else
                        {
                            certPal.Dispose();
                        }
                    }

                    return first;
                }
            }

            // Unsupported
            throw Interop.libcrypto.CreateOpenSslCryptographicException();
        }
开发者ID:jinglecat,项目名称:corefx,代码行数:59,代码来源:CertificatePal.cs

示例4: X509Certificate

        public X509Certificate(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
        {
            if (rawData == null || rawData.Length == 0)
                throw new ArgumentException(SR.Arg_EmptyOrNullArray, "rawData");
            if ((keyStorageFlags & ~KeyStorageFlagsAll) != 0)
                throw new ArgumentException(SR.Argument_InvalidFlag, "keyStorageFlags");

            Pal = CertificatePal.FromBlob(rawData, password, keyStorageFlags);
        }
开发者ID:nbilling,项目名称:corefx,代码行数:9,代码来源:X509Certificate.cs

示例5: X509Certificate

        public X509Certificate(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
        {
            if (rawData == null || rawData.Length == 0)
                throw new ArgumentException(SR.Arg_EmptyOrNullArray, nameof(rawData));
 
            ValidateKeyStorageFlags(keyStorageFlags);

            Pal = CertificatePal.FromBlob(rawData, password, keyStorageFlags);
        }
开发者ID:naamunds,项目名称:corefx,代码行数:9,代码来源:X509Certificate.cs

示例6: FromFile

        public static IStorePal FromFile(string fileName, string password, X509KeyStorageFlags keyStorageFlags)
        {
            using (SafeBioHandle bio = Interop.Crypto.BioNewFile(fileName, "rb"))
            {
                Interop.Crypto.CheckValidOpenSslHandle(bio);

                return FromBio(bio, password);
            }
        }
开发者ID:rajeevkb,项目名称:corefx,代码行数:9,代码来源:StorePal.cs

示例7: ImportPkcs12Bytes_Single

 public static void ImportPkcs12Bytes_Single(X509KeyStorageFlags keyStorageFlags)
 {
     using (ImportedCollection ic = Cert.Import(TestData.PfxData, TestData.PfxDataPassword, keyStorageFlags))
     {
         X509Certificate2Collection cc2 = ic.Collection;
         int count = cc2.Count;
         Assert.Equal(1, count);
     }
 }
开发者ID:dotnet,项目名称:corefx,代码行数:9,代码来源:CollectionImportTests.cs

示例8: ImportPkcs12Bytes_Chain

 public static void ImportPkcs12Bytes_Chain(X509KeyStorageFlags keyStorageFlags)
 {
     using (ImportedCollection ic = Cert.Import(TestData.ChainPfxBytes, TestData.ChainPfxPassword, keyStorageFlags))
     {
         X509Certificate2Collection certs = ic.Collection;
         int count = certs.Count;
         Assert.Equal(3, count);
     }
 }
开发者ID:dotnet,项目名称:corefx,代码行数:9,代码来源:CollectionImportTests.cs

示例9: EnsurePrivateKeyPreferred

 public static void EnsurePrivateKeyPreferred(X509KeyStorageFlags keyStorageFlags)
 {
     using (var cert = new X509Certificate2(TestData.ChainPfxBytes, TestData.ChainPfxPassword, keyStorageFlags))
     {
         // While checking cert.HasPrivateKey first is most matching of the test description, asserting
         // on the certificate's simple name will provide a more diagnosable failure.
         Assert.Equal("test.local", cert.GetNameInfo(X509NameType.SimpleName, false));
         Assert.True(cert.HasPrivateKey, "cert.HasPrivateKey");
     }
 }
开发者ID:dotnet,项目名称:corefx,代码行数:10,代码来源:PfxTests.cs

示例10: FromFile

        public static ICertificatePal FromFile(string fileName, string password, X509KeyStorageFlags keyStorageFlags)
        {
            // If we can't open the file, fail right away.
            using (SafeBioHandle fileBio = Interop.Crypto.BioNewFile(fileName, "rb"))
            {
                Interop.Crypto.CheckValidOpenSslHandle(fileBio);

                return FromBio(fileBio, password);
            }
        }
开发者ID:Corillian,项目名称:corefx,代码行数:10,代码来源:CertificatePal.cs

示例11: GetCertificate

 public static X509Certificate2 GetCertificate(string filePath, string password, X509KeyStorageFlags flags)
 {
     try
     {
         return new X509Certificate2(filePath, password, flags);
     }
     catch (Exception)
     {
         throw;
     }
 }
开发者ID:henningms,项目名称:digipost-hackathon-api-dotnet,代码行数:11,代码来源:Util.cs

示例12: Import

		internal static X509Certificate2Impl Import (byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
		{
			var provider = MonoTlsProviderFactory.GetProvider ();
			if (provider.HasNativeCertificates) {
				var impl = provider.GetNativeCertificate (rawData, password, keyStorageFlags);
				return impl;
			} else {
				var impl = new X509Certificate2ImplMono ();
				impl.Import (rawData, password, keyStorageFlags);
				return impl;
			}
		}
开发者ID:razzfazz,项目名称:mono,代码行数:12,代码来源:X509Helper2.cs

示例13: X509Certificate

        public X509Certificate(byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags)
        {
            if (rawData == null || rawData.Length == 0)
                throw new ArgumentException(SR.Arg_EmptyOrNullArray, nameof(rawData));

            ValidateKeyStorageFlags(keyStorageFlags);

            using (var safePasswordHandle = new SafePasswordHandle(password))
            {
                Pal = CertificatePal.FromBlob(rawData, safePasswordHandle, keyStorageFlags);
            }
        }
开发者ID:crummel,项目名称:dotnet_corefx,代码行数:12,代码来源:X509Certificate.cs

示例14: TestConstructor

        public static void TestConstructor(X509KeyStorageFlags keyStorageFlags)
        {
            byte[] expectedThumbprint = "71cb4e2b02738ad44f8b382c93bd17ba665f9914".HexToByteArray();

            using (var c = new X509Certificate2(TestData.PfxData, TestData.PfxDataPassword, keyStorageFlags))
            {
                string subject = c.Subject;
                Assert.Equal("CN=MyName", subject);
                byte[] thumbPrint = c.GetCertHash();
                Assert.Equal(expectedThumbprint, thumbPrint);
            }
        }
开发者ID:naamunds,项目名称:corefx,代码行数:12,代码来源:PfxTests.cs

示例15: MapKeyStorageFlags

        // this method maps a X509KeyStorageFlags enum to a combination of crypto API flags
        internal static uint MapKeyStorageFlags (X509KeyStorageFlags keyStorageFlags) {
            uint dwFlags = 0;
            if ((keyStorageFlags & X509KeyStorageFlags.UserKeySet) == X509KeyStorageFlags.UserKeySet)
                dwFlags |= CAPI.CRYPT_USER_KEYSET;
            else if ((keyStorageFlags & X509KeyStorageFlags.MachineKeySet) == X509KeyStorageFlags.MachineKeySet)
                dwFlags |= CAPI.CRYPT_MACHINE_KEYSET;

            if ((keyStorageFlags & X509KeyStorageFlags.Exportable) == X509KeyStorageFlags.Exportable)
                dwFlags |= CAPI.CRYPT_EXPORTABLE;
            if ((keyStorageFlags & X509KeyStorageFlags.UserProtected) == X509KeyStorageFlags.UserProtected)
                dwFlags |= CAPI.CRYPT_USER_PROTECTED;

            return dwFlags;
        }
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:15,代码来源:x509utils.cs


注:本文中的X509KeyStorageFlags类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。