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