152 references to KeyBlobMagicNumber
System.Security.Cryptography (152)
src\runtime\src\libraries\Common\src\Interop\Windows\BCrypt\Interop.Blobs.cs (7)
170internal KeyBlobMagicNumber Magic; 184internal KeyBlobMagicNumber Magic; 209internal KeyBlobMagicNumber Magic; 241internal KeyBlobMagicNumber Magic; 269internal KeyBlobMagicNumber Magic; 286internal KeyBlobMagicNumber Magic; 295internal KeyBlobMagicNumber dwMagic;
src\runtime\src\libraries\Common\src\System\Security\Cryptography\DSACng.ImportExport.cs (18)
9using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 188pBcryptBlob->Magic = includePrivate ? KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC : KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC; 191int offset = sizeof(KeyBlobMagicNumber) + sizeof(int); // skip Magic and cbKey 256pBcryptBlob->Magic = includePrivateParameters ? KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC_V2 : KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC_V2; 329KeyBlobMagicNumber magic = (KeyBlobMagicNumber)BitConverter.ToInt32(dsaBlob, 0); 342if (magic == KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC || magic == KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC) 356offset = sizeof(KeyBlobMagicNumber) + sizeof(int); // skip Magic and cbKey 374Debug.Assert(magic == KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC_V2 || magic == KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC_V2); 427private static void CheckMagicValueOfKey(KeyBlobMagicNumber magic, bool includePrivateParameters) 431if (magic != KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC && magic != KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC_V2) 436if (magic != KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC && magic != KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC_V2)
src\runtime\src\libraries\Common\src\System\Security\Cryptography\DSACng.SignVerify.cs (2)
162if (pBlob->Magic != KeyBlobMagicNumber.BCRYPT_DSA_PUBLIC_MAGIC_V2 && pBlob->Magic != KeyBlobMagicNumber.BCRYPT_DSA_PRIVATE_MAGIC_V2)
src\runtime\src\libraries\Common\src\System\Security\Cryptography\ECCng.ImportExport.cs (47)
9using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 21KeyBlobMagicNumber magic = ecdh ? 82(ecdh ? KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC : KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC) : 83(ecdh ? KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC : KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC); 125static (KeyBlobMagicNumber magic, byte[] x, byte[] y, byte[]? d) => 145static (KeyBlobMagicNumber magic, byte[] x, byte[] y, byte[]? d) => 178KeyBlobMagicNumber magic = (KeyBlobMagicNumber)BitConverter.ToInt32(ecBlob, 0); 292private static void CheckMagicValueOfKey(KeyBlobMagicNumber magic, bool includePrivateParameters) 310private static bool IsMagicValueOfKeyPrivate(KeyBlobMagicNumber magic) 314case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC: 315case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC: 316case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P256_MAGIC: 317case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P256_MAGIC: 318case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P384_MAGIC: 319case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P384_MAGIC: 320case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P521_MAGIC: 321case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P521_MAGIC: 328private static bool IsMagicValueOfKeyPublic(KeyBlobMagicNumber magic) 332case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC: 333case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC: 334case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P256_MAGIC: 335case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P256_MAGIC: 336case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P384_MAGIC: 337case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P384_MAGIC: 338case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P521_MAGIC: 339case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P521_MAGIC: 352private static KeyBlobMagicNumber EcdsaCurveNameToMagicNumber(string? name, bool includePrivateParameters) => 356KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P256_MAGIC : 357KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P256_MAGIC, 360KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P384_MAGIC : 361KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P384_MAGIC, 364KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P521_MAGIC : 365KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P521_MAGIC, 368KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC : 369KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC, 377private static KeyBlobMagicNumber EcdhCurveNameToMagicNumber(string? name, bool includePrivateParameters) => 381KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P256_MAGIC : 382KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P256_MAGIC, 385KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P384_MAGIC : 386KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P384_MAGIC, 389KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P521_MAGIC : 390KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P521_MAGIC, 393KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC : 394KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC,
src\runtime\src\libraries\Common\src\System\Security\Cryptography\ECCng.ImportExport.NamedCurve.cs (5)
9using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 18internal static T EncodeEccKeyBlob<T>(KeyBlobMagicNumber magic, byte[] x, byte[] y, byte[]? d, Func<byte[], T> encodeCallback, bool clearBlob = true) 82internal delegate T DecodeBlobFunc<T>(KeyBlobMagicNumber magic, byte[] x, byte[] y, byte[]? d); 94KeyBlobMagicNumber magic = (KeyBlobMagicNumber)MemoryMarshal.Cast<byte, int>(ecBlob)[0];
src\runtime\src\libraries\Common\src\System\Security\Cryptography\MLKem.Windows.cs (2)
7using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 15KeyBlobMagicNumber kind,
src\runtime\src\libraries\Common\src\System\Security\Cryptography\MLKemCng.Windows.cs (9)
11using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 151ExportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_SEED_MAGIC, destination); 167ExportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_MAGIC, destination); 176ExportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC, destination); 231private void ExportKey(KeyBlobMagicNumber kind, Span<byte> destination) 233Debug.Assert(kind is KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC or 234KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_MAGIC or 235KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_SEED_MAGIC); 237if (kind != KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC && _key.ExportPolicy == CngExportPolicies.None)
src\runtime\src\libraries\Common\src\System\Security\Cryptography\MLKemImplementation.Windows.cs (10)
10using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 59SafeBCryptKeyHandle key = ImportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_SEED_MAGIC, algorithm, source); 67SafeBCryptKeyHandle key = ImportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_MAGIC, algorithm, source); 75SafeBCryptKeyHandle key = ImportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC, algorithm, source); 112ExportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_SEED_MAGIC, destination); 120ExportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_MAGIC, destination); 126ExportKey(KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC, destination); 163private void ExportKey(KeyBlobMagicNumber kind, Span<byte> destination) 175if (kind == KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC) 186private static SafeBCryptKeyHandle ImportKey(KeyBlobMagicNumber kind, MLKemAlgorithm algorithm, ReadOnlySpan<byte> key)
src\runtime\src\libraries\Common\src\System\Security\Cryptography\PqcBlobHelpers.cs (18)
10using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 52KeyBlobMagicNumber magic; 57magic = KeyBlobMagicNumber.BCRYPT_MLDSA_PUBLIC_MAGIC; 60magic = KeyBlobMagicNumber.BCRYPT_MLDSA_PRIVATE_MAGIC; 63magic = KeyBlobMagicNumber.BCRYPT_MLDSA_PRIVATE_SEED_MAGIC; 78ReadOnlySpan<byte> data = DecodePQDsaBlob(blob, out KeyBlobMagicNumber magic, out parameterSet); 82case KeyBlobMagicNumber.BCRYPT_MLDSA_PUBLIC_MAGIC: 85case KeyBlobMagicNumber.BCRYPT_MLDSA_PRIVATE_MAGIC: 88case KeyBlobMagicNumber.BCRYPT_MLDSA_PRIVATE_SEED_MAGIC: 100KeyBlobMagicNumber magic, 161out KeyBlobMagicNumber magic, 197internal static string MLKemBlobMagicToBlobType(KeyBlobMagicNumber magicNumber) 201KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_SEED_MAGIC => KeyBlobType.BCRYPT_MLKEM_PRIVATE_SEED_BLOB, 202KeyBlobMagicNumber.BCRYPT_MLKEM_PRIVATE_MAGIC => KeyBlobType.BCRYPT_MLKEM_PRIVATE_BLOB, 203KeyBlobMagicNumber.BCRYPT_MLKEM_PUBLIC_MAGIC => KeyBlobType.BCRYPT_MLKEM_PUBLIC_BLOB, 204KeyBlobMagicNumber other => throw Fail(other), 207static CryptographicException Fail(KeyBlobMagicNumber other) 220KeyBlobMagicNumber kind,
src\runtime\src\libraries\Common\src\System\Security\Cryptography\X25519WindowsHelpers.cs (6)
24Interop.BCrypt.KeyBlobMagicNumber expectedMagicNumber = privateKey ? 25Interop.BCrypt.KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC : 26Interop.BCrypt.KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC; 75Interop.BCrypt.KeyBlobMagicNumber magicNumber = privateKey ? 76Interop.BCrypt.KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC : 77Interop.BCrypt.KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC;
System\Security\Cryptography\CngHelpers.cs (11)
12using KeyBlobMagicNumber = Interop.BCrypt.KeyBlobMagicNumber; 191pBcryptBlob->Magic = includePrivate ? KeyBlobMagicNumber.BCRYPT_RSAPRIVATE_MAGIC : KeyBlobMagicNumber.BCRYPT_RSAPUBLIC_MAGIC; 251KeyBlobMagicNumber magic = (KeyBlobMagicNumber)Unsafe.ReadUnaligned<int>(pRsaBlob); 277static void CheckMagicValueOfKey(KeyBlobMagicNumber magic, bool includePrivateParameters) 281if (magic != KeyBlobMagicNumber.BCRYPT_RSAPRIVATE_MAGIC && magic != KeyBlobMagicNumber.BCRYPT_RSAFULLPRIVATE_MAGIC) 288if (magic != KeyBlobMagicNumber.BCRYPT_RSAPUBLIC_MAGIC) 291if (magic != KeyBlobMagicNumber.BCRYPT_RSAPRIVATE_MAGIC && magic != KeyBlobMagicNumber.BCRYPT_RSAFULLPRIVATE_MAGIC)
System\Security\Cryptography\ECCng.ImportExport.cs (17)
183switch ((KeyBlobMagicNumber)pBcryptBlob->Magic) 185case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P256_MAGIC: 186case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P384_MAGIC: 187case KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_P521_MAGIC: 188pBcryptBlob->Magic = KeyBlobMagicNumber.BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC; 190case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P256_MAGIC: 191case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P384_MAGIC: 192case KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_P521_MAGIC: 193pBcryptBlob->Magic = KeyBlobMagicNumber.BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC; 195case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P256_MAGIC: 196case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P384_MAGIC: 197case KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_P521_MAGIC: 198pBcryptBlob->Magic = KeyBlobMagicNumber.BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC; 200case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P256_MAGIC: 201case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P384_MAGIC: 202case KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_P521_MAGIC: 203pBcryptBlob->Magic = KeyBlobMagicNumber.BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC;