62 int num = ((!(
text ==
"1.2.840.113549.1.1.1")) ? global::Interop.Crypt32.FindOidInfo(global::Interop.Crypt32.CryptOidInfoKeyType.CRYPT_OID_INFO_OID_KEY,
text,
OidGroup.PublicKeyAlgorithm,
fallBackToAllGroups:
true).AlgId : 41984);
75 byte[] result =
certContext->pCertInfo->SubjectPublicKeyInfo.PublicKey.ToByteArray();
142 int result =
certContext->pCertInfo->dwVersion + 1;
235 for (
int i = 0; i < cExtension; i++)
270 throw (-2147024890).ToCryptographicException();
475 if (!global::Interop.crypt32.CryptQueryObject(
dwObjectType,
pvObject,
ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_CERT |
ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT |
ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED |
ExpectedContentTypeFlags.CERT_QUERY_CONTENT_FLAG_PFX,
ExpectedFormatTypeFlags.CERT_QUERY_FORMAT_FLAG_ALL, 0,
out var _,
out pdwContentType,
out var _,
out phCertStore,
out phMsg,
out ppvContext))
485 case ContentType.CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED:
518 throw (-2146889714).ToCryptographicException();
533 cERT_INFO.Issuer.cbData =
ptr2->Issuer.cbData;
534 cERT_INFO.Issuer.pbData =
ptr2->Issuer.pbData;
535 cERT_INFO.SerialNumber.cbData =
ptr2->SerialNumber.cbData;
536 cERT_INFO.SerialNumber.pbData =
ptr2->SerialNumber.pbData;
538 if (!global::Interop.crypt32.CertFindCertificateInStore(hCertStore,
CertFindType.CERT_FIND_SUBJECT_CERT, &
cERT_INFO,
ref pCertContext))
676 dSACng2.ImportParameters(parameters);
753 rSACng2.ImportParameters(parameters);
853 cspParameters.ProviderType =
ptr2->dwProvType;
854 cspParameters.KeyNumber =
ptr2->dwKeySpec;
863 if (
string.IsNullOrEmpty(
cngKey.KeyName))
882 intPtr = (pwszProvName =
null);
883 cRYPT_KEY_PROV_INFO.pwszContainerName = pwszContainerName;
884 cRYPT_KEY_PROV_INFO.pwszProvName = pwszProvName;
888 cRYPT_KEY_PROV_INFO.dwKeySpec = dwKeySpec;
901 cRYPT_KEY_PROV_INFO.pwszContainerName = pwszContainerName;
902 cRYPT_KEY_PROV_INFO.pwszProvName = pwszProvName;
905 cRYPT_KEY_PROV_INFO.dwKeySpec = dwKeySpec;
968 int[]
array =
new int[4] { 1, 24, 12, 2 };
991 int[]
array =
new int[2] { 13, 3 };
1027 if (providerName ==
null)
1030 intPtr = (pwszProvName =
null);
1031 cRYPT_KEY_PROV_INFO.pwszContainerName = pwszContainerName;
1032 cRYPT_KEY_PROV_INFO.pwszProvName = pwszProvName;
1034 dwFlags = (keyContainerInfo.MachineKeyStore ? 32 : 0);
1046 fixed (
char*
ptr = &providerName.GetPinnableReference())
1050 cRYPT_KEY_PROV_INFO.pwszContainerName = pwszContainerName;
1051 cRYPT_KEY_PROV_INFO.pwszProvName = pwszProvName;
1076 handle.SetHandleAsInvalid();
unsafe byte[] PropagateKeyAlgorithmParametersFromChain()
ECDiffieHellman GetECDiffieHellmanPrivateKey()
ICertificatePal CopyWithEphemeralKey(CngKey cngKey)
ICertificatePal CopyWithPrivateKey(DSA dsa)
ICertificatePal CopyWithPrivateKey(ECDiffieHellman ecdh)
static bool TryGuessKeySpec(CspParameters cspParameters, CngAlgorithmGroup algorithmGroup, out int keySpec)
static int GuessKeySpec(CngProvider provider, string keyName, bool machineKey, CngAlgorithmGroup algorithmGroup)
unsafe ICertificatePal CopyWithPersistedCapiKey(CspKeyContainerInfo keyContainerInfo)
static PfxCertStoreFlags MapKeyStorageFlags(X509KeyStorageFlags keyStorageFlags)
static ICertificatePal FromOtherCert(X509Certificate copyFrom)
unsafe string FriendlyName
unsafe byte[] SerialNumber
ECDsa GetECDsaPrivateKey()
unsafe X500DistinguishedName IssuerName
SafeCertContextHandle CertContext
string GetIssuerOrSubject(bool issuer, bool reverse)
static ICertificatePal FromHandle(IntPtr handle)
byte[] Export(X509ContentType contentType, SafePasswordHandle password)
static SafeNCryptKeyHandle TryAcquireCngPrivateKey(SafeCertContextHandle certificateContext, out CngKeyHandleOpenOptions handleOptions)
unsafe ICertificatePal CopyWithPersistedCngKey(CngKey cngKey)
static unsafe SafeCertContextHandle FilterPFXStore(ReadOnlySpan< byte > rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags)
ICertificatePal CopyWithPrivateKey(ECDsa ecdsa)
static unsafe ICertificatePal FromBlobOrFile(ReadOnlySpan< byte > rawData, string fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
static unsafe SafeCertContextHandle GetSignerInPKCS7Store(SafeCertStoreHandle hCertStore, SafeCryptMsgHandle hCryptMsg)
CertificatePal(CertificatePal copyFrom)
unsafe byte[] KeyAlgorithmParameters
unsafe X500DistinguishedName SubjectName
unsafe string SignatureAlgorithm
static bool TryGuessRsaKeySpec(CspParameters cspParameters, out int keySpec)
unsafe CspParameters GetPrivateKeyCsp()
unsafe DateTime NotBefore
ICertificatePal CopyWithPrivateKey(RSA rsa)
void AppendPrivateKeyInfo(StringBuilder sb)
string GetNameInfo(X509NameType nameType, bool forIssuer)
static bool TryGuessDsaKeySpec(CspParameters cspParameters, out int keySpec)
T GetPrivateKey< T >(Func< CspParameters, T > createCsp, Func< CngKey, T > createCng)
SafeCertContextHandle _certContext
CertificatePal(SafeCertContextHandle certContext, bool deleteKeyContainer)
unsafe byte[] PublicKeyValue
unsafe string KeyAlgorithm
static CertNameType MapNameType(X509NameType nameType)
static ICertificatePal FromBlob(ReadOnlySpan< byte > rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
static ICertificatePal FromFile(string fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
static unsafe void DeleteKeyContainer(SafeCertContextHandle pCertContext)
SafeCertContextHandle Duplicate()
unsafe CERT_CONTEXT * CertContext
bool HasPersistedPrivateKey
static IExportPal FromCertificate(ICertificatePalCore cert)
static SafePasswordHandle InvalidHandle
static void Reverse(Array array)
static void KeepAlive(object? obj)
static byte[] ReadAllBytes(string path)
static int GetHRForLastWin32Error()
static void FreeHGlobal(IntPtr hglobal)
static unsafe? string PtrToStringUni(IntPtr ptr)
static unsafe? string PtrToStringAnsi(IntPtr ptr)
static int GetLastWin32Error()
static unsafe IntPtr StringToHGlobalUni(string? s)
static string Arg_InvalidHandle
static string Argument_InvalidFlag
static string Cryptography_Pfx_NoCertificates
static string NotSupported_ECDiffieHellman_Csp
static string NotSupported_ECDsa_Csp
static string Argument_InvalidNameType
static CngAlgorithmGroup Dsa
static CngAlgorithmGroup Rsa
static CngKey Open(string keyName)
static CngProvider MicrosoftSmartCardKeyStorageProvider
static CngProvider MicrosoftSoftwareKeyStorageProvider
StringBuilder AppendLine()
StringBuilder Append(char value, int repeatCount)
CryptMessageParameterType
unsafe CERT_INFO * pCertInfo
unsafe CERT_EXTENSION * rgExtension
unsafe byte[] ToByteArray()
static PinAndClear Track(byte[] data)
static readonly IntPtr Zero