# MsCng Crypto Engine

**API Group:** `xmlsec_mscng_crypto`

Cryptographic operations provided by the MsCng back-end.

Symmetric keys implementation for MSCng.

Signatures implementation for MSCng.

AES/Camellia Key Transport (RFC 3394) implementation for MSCng.

DES Key Transport transforms implementation for MSCng.

RSA Key Transport transforms implementation for MSCng.

Key agreement transforms implementation for MSCng.

KDF (key derivation) transforms implementation for MSCng.

HMAC transforms implementation for MSCng.

Digests transforms implementation for MSCng.

DEREncodedKeyValue processing for MSCng.

Crypto transforms implementation for Microsoft Cryptography API: Next Generation (CNG).

ConcatKDF (key derivation) transforms implementation for MSCng.

GCM Ciphers transforms implementation for MSCng.

CBC Ciphers transforms implementation for MSCng.

## Macros

### `xmlSecMSCngKeyDataConcatKdfId`

*Defined as:* `xmlSecMSCngKeyDataConcatKdfGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L50)

The ConcatKDF key klass.

---

### `xmlSecMSCngTransformConcatKdfId`

*Defined as:* `xmlSecMSCngTransformConcatKdfGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L57)

The ConcatKDF key derivation transform klass.

---

### `xmlSecMSCngKeyDataDsaId`

*Defined as:* `xmlSecMSCngKeyDataDsaGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L72)

The DSA key klass.

---

### `xmlSecMSCngTransformDsaSha1Id`

*Defined as:* `xmlSecMSCngTransformDsaSha1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L80)

The DSA-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformDsaSha256Id`

*Defined as:* `xmlSecMSCngTransformDsaSha256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L89)

The DSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCngKeyDataRsaId`

*Defined as:* `xmlSecMSCngKeyDataRsaGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L106)

The RSA key klass.

---

### `xmlSecMSCngTransformRsaMd5Id`

*Defined as:* `xmlSecMSCngTransformRsaMd5GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L114)

The RSA-MD5 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha1Id`

*Defined as:* `xmlSecMSCngTransformRsaSha1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L123)

The RSA-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha256Id`

*Defined as:* `xmlSecMSCngTransformRsaSha256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L132)

The RSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha384Id`

*Defined as:* `xmlSecMSCngTransformRsaSha384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L141)

The RSA-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha512Id`

*Defined as:* `xmlSecMSCngTransformRsaSha512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L150)

The RSA-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha1Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L159)

The RSA-PSS-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha256Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L168)

The RSA-PSS-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha384Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L177)

The RSA-PSS-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha512Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L186)

The RSA-PSS-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha3_256Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha3_256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L195)

The RSA-PSS-SHA3-256 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha3_384Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha3_384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L202)

The RSA-PSS-SHA3-384 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha3_512Id`

*Defined as:* `xmlSecMSCngTransformRsaPssSha3_512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L209)

The RSA-PSS-SHA3-512 signature transform klass.

---

### `xmlSecMSCngTransformRsaPkcs1Id`

*Defined as:* `xmlSecMSCngTransformRsaPkcs1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L218)

The RSA PKCS1 key transport transform klass.

---

### `xmlSecMSCngTransformRsaOaepId`

*Defined as:* `xmlSecMSCngTransformRsaOaepGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L228)

The RSA OAEP key transport klass (XMLEnc 1.0).

The RSA OAEP key transport transform klass (XMLEnc 1.0).

---

### `xmlSecMSCngTransformRsaOaepEnc11Id`

*Defined as:* `xmlSecMSCngTransformRsaOaepEnc11GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L237)

The RSA OAEP key transport klass (XMLEnc 1.1).

The RSA OAEP key transport transform klass (XMLEnc 1.1).

---

### `xmlSecMSCngKeyDataEcId`

*Defined as:* `xmlSecMSCngKeyDataEcGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L254)

The EC key klass.

---

### `xmlSecMSCngTransformEcdsaSha1Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L261)

The ECDSA-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha256Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L270)

The ECDSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha384Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L279)

The ECDSA-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha512Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L288)

The ECDSA-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha3_256Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha3_256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L297)

The ECDSA-SHA3-256 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha3_384Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha3_384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L304)

The ECDSA-SHA3-384 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha3_512Id`

*Defined as:* `xmlSecMSCngTransformEcdsaSha3_512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L311)

The ECDSA-SHA3-512 signature transform klass.

---

### `xmlSecMSCngTransformEcdhId`

*Defined as:* `xmlSecMSCngTransformEcdhGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L319)

The ECDH key agreement transform klass.

---

### `xmlSecMSCngKeyDataDhId`

*Defined as:* `xmlSecMSCngKeyDataDhGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L335)

The DH key data klass.

---

### `xmlSecMSCngTransformDhEsId`

*Defined as:* `xmlSecMSCngTransformDhEsGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L342)

The DH-ES key agreement transform klass.

---

### `xmlSecMSCngKeyDataXdhId`

*Defined as:* `xmlSecMSCngKeyDataXdhGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L358)

The XDH key data klass (X25519 Diffie-Hellman).

---

### `xmlSecMSCngTransformX25519Id`

*Defined as:* `xmlSecMSCngTransformX25519GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L365)

The X25519 key agreement transform klass.

---

### `xmlSecMSCngKeyDataDesId`

*Defined as:* `xmlSecMSCngKeyDataDesGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L381)

The DES key data klass.

---

### `xmlSecMSCngTransformDes3CbcId`

*Defined as:* `xmlSecMSCngTransformDes3CbcGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L388)

The DES3 CBC cipher transform klass.

---

### `xmlSecMSCngTransformKWDes3Id`

*Defined as:* `xmlSecMSCngTransformKWDes3GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L395)

The DES3 KW transform klass.

---

### `xmlSecMSCngKeyDataHmacId`

*Defined as:* `xmlSecMSCngKeyDataHmacGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L411)

The HMAC key klass.

---

### `xmlSecMSCngTransformHmacMd5Id`

*Defined as:* `xmlSecMSCngTransformHmacMd5GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L419)

The HMAC-MD5 signature transform klass.

---

### `xmlSecMSCngTransformHmacSha1Id`

*Defined as:* `xmlSecMSCngTransformHmacSha1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L428)

The HMAC-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformHmacSha256Id`

*Defined as:* `xmlSecMSCngTransformHmacSha256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L437)

The HMAC-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformHmacSha384Id`

*Defined as:* `xmlSecMSCngTransformHmacSha384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L446)

The HMAC-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformHmacSha512Id`

*Defined as:* `xmlSecMSCngTransformHmacSha512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L455)

The HMAC-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformMd5Id`

*Defined as:* `xmlSecMSCngTransformMd5GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L471)

The MD5 digest transform klass.

---

### `xmlSecMSCngKeyDataPbkdf2Id`

*Defined as:* `xmlSecMSCngKeyDataPbkdf2GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L486)

The PBKDF2 key klass.

---

### `xmlSecMSCngTransformPbkdf2Id`

*Defined as:* `xmlSecMSCngTransformPbkdf2GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L493)

The PBDKF2 key derivation transform klass.

---

### `xmlSecMSCngKeyDataHkdfId`

*Defined as:* `xmlSecMSCngKeyDataHkdfGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L508)

The HKDF key klass.

---

### `xmlSecMSCngTransformHkdfId`

*Defined as:* `xmlSecMSCngTransformHkdfGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L515)

The HKDF key derivation transform klass.

---

### `xmlSecMSCngTransformSha1Id`

*Defined as:* `xmlSecMSCngTransformSha1GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L529)

The SHA1 digest transform klass.

---

### `xmlSecMSCngTransformSha256Id`

*Defined as:* `xmlSecMSCngTransformSha256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L543)

The SHA2-256 digest transform klass.

---

### `xmlSecMSCngTransformSha384Id`

*Defined as:* `xmlSecMSCngTransformSha384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L557)

The SHA2-384 digest transform klass.

---

### `xmlSecMSCngTransformSha512Id`

*Defined as:* `xmlSecMSCngTransformSha512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L571)

The SHA2-512 digest transform klass.

---

### `xmlSecMSCngTransformSha3_256Id`

*Defined as:* `xmlSecMSCngTransformSha3_256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L586)

The SHA3-256 digest transform klass.

---

### `xmlSecMSCngTransformSha3_384Id`

*Defined as:* `xmlSecMSCngTransformSha3_384GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L593)

The SHA3-384 digest transform klass.

---

### `xmlSecMSCngTransformSha3_512Id`

*Defined as:* `xmlSecMSCngTransformSha3_512GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L600)

The SHA3-512 digest transform klass.

---

### `xmlSecMSCngKeyDataAesId`

*Defined as:* `xmlSecMSCngKeyDataAesGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L614)

The AES key data klass.

---

### `xmlSecMSCngTransformAes128CbcId`

*Defined as:* `xmlSecMSCngTransformAes128CbcGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L621)

The AES128 CBC cipher transform klass.

---

### `xmlSecMSCngTransformAes192CbcId`

*Defined as:* `xmlSecMSCngTransformAes192CbcGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L628)

The AES192 CBC cipher transform klass.

---

### `xmlSecMSCngTransformAes256CbcId`

*Defined as:* `xmlSecMSCngTransformAes256CbcGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L635)

The AES256 CBC cipher transform klass.

---

### `xmlSecMSCngTransformAes128GcmId`

*Defined as:* `xmlSecMSCngTransformAes128GcmGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L642)

The AES128 GCM cipher transform klass.

---

### `xmlSecMSCngTransformAes192GcmId`

*Defined as:* `xmlSecMSCngTransformAes192GcmGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L649)

The AES192 GCM cipher transform klass.

---

### `xmlSecMSCngTransformAes256GcmId`

*Defined as:* `xmlSecMSCngTransformAes256GcmGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L656)

The AES256 GCM cipher transform klass.

---

### `xmlSecMSCngTransformKWAes128Id`

*Defined as:* `xmlSecMSCngTransformKWAes128GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L663)

The AES 128 key wrap transform klass.

---

### `xmlSecMSCngTransformKWAes192Id`

*Defined as:* `xmlSecMSCngTransformKWAes192GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L670)

The AES 192 key wrap transform klass.

---

### `xmlSecMSCngTransformKWAes256Id`

*Defined as:* `xmlSecMSCngTransformKWAes256GetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L677)

The AES 256 key wrap transform klass.

---

### `xmlSecMSCngKeyDataDEREncodedKeyValueId`

*Defined as:* `xmlSecMSCngKeyDataDEREncodedKeyValueGetKlass()`

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L686)

The MSCng DEREncodedKeyValue data klass.

---

## Functions

### `xmlSecCryptoGetFunctions_mscng`

```c
xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_mscng(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L26)

Gets the pointer to xmlsec-mscng functions table.

**Returns:** the xmlsec-mscng functions table or NULL if an error occurs.

---

### `xmlSecMSCngGenerateRandom`

```c
int xmlSecMSCngGenerateRandom(xmlSecBufferPtr buffer, xmlSecSize size);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L28)

Generates `size` random bytes into `buffer`.

Generates `size` random bytes and puts result in `buffer`. 

**Parameters:**

- `buffer` — the destination buffer.
- `size` — the numer of bytes to generate.


**Returns:** 0 on success or a negative value otherwise.

---

### `xmlSecMSCngInit`

```c
int xmlSecMSCngInit(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L35)

Initializes the MSCng crypto engine.

XMLSec library specific crypto engine initialization. 

**Returns:** 0 on success or a negative value otherwise.

---

### `xmlSecMSCngShutdown`

```c
int xmlSecMSCngShutdown(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L36)

XMLSec library specific crypto engine shutdown.

**Returns:** 0 on success or a negative value otherwise.

---

### `xmlSecMSCngKeysMngrInit`

```c
int xmlSecMSCngKeysMngrInit(xmlSecKeysMngrPtr mngr);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L38)

Adds MSCng specific key data stores.

Adds MSCng specific key data stores in keys manager. 

**Parameters:**

- `mngr` — the pointer to keys manager.


**Returns:** 0 on success or a negative value otherwise.

---

### `xmlSecMSCngKeyDataConcatKdfGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataConcatKdfGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L52)

The ConcatKdf key data klass.

**Returns:** ConcatKdf key data klass.

---

### `xmlSecMSCngTransformConcatKdfGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformConcatKdfGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L59)

The CONCATKDF2 key derivation transform klass.

**Returns:** the CONCATKDF2 key derivation transform klass.

---

### `xmlSecMSCngKeyDataDsaGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataDsaGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L74)

The MSCng DSA CertKey data klass.

**Returns:** pointer to MSCng DSA key data klass.

---

### `xmlSecMSCngTransformDsaSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformDsaSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L82)

The DSA-SHA1 signature transform klass.

**Returns:** DSA-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformDsaSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformDsaSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L91)

The DSA-SHA2-256 signature transform klass.

**Returns:** DSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCngKeyDataRsaGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataRsaGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L108)

The MSCng RSA CertKey data klass.

**Returns:** pointer to MSCng RSA key data klass.

---

### `xmlSecMSCngTransformRsaMd5GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaMd5GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L116)

The RSA-MD5 signature transform klass.

**Returns:** RSA-MD5 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L125)

The RSA-SHA1 signature transform klass.

**Returns:** RSA-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L134)

The RSA-SHA2-256 signature transform klass.

**Returns:** RSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L143)

The RSA-SHA2-384 signature transform klass.

**Returns:** RSA-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformRsaSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L152)

The RSA-SHA2-512 signature transform klass.

**Returns:** RSA-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L161)

The RSA-PSS-SHA1 signature transform klass.

**Returns:** RSA-PSS-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L170)

The RSA-PSS-SHA2-256 signature transform klass.

**Returns:** RSA-PSS-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L179)

The RSA-PSS-SHA2-384 signature transform klass.

**Returns:** RSA-PSS-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L188)

The RSA-PSS-SHA2-512 signature transform klass.

**Returns:** RSA-PSS-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha3_256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha3_256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L197)

The RSA-PSS-SHA3-256 signature transform klass.

**Returns:** RSA-PSS-SHA3-256 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha3_384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha3_384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L204)

The RSA-PSS-SHA3-384 signature transform klass.

**Returns:** RSA-PSS-SHA3-384 signature transform klass.

---

### `xmlSecMSCngTransformRsaPssSha3_512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPssSha3_512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L211)

The RSA-PSS-SHA3-512 signature transform klass.

**Returns:** RSA-PSS-SHA3-512 signature transform klass.

---

### `xmlSecMSCngTransformRsaPkcs1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaPkcs1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L220)

The RSA-PKCS1 key transport transform klass.

**Returns:** RSA-PKCS1 key transport transform klass.

---

### `xmlSecMSCngTransformRsaOaepGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaOaepGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L230)

RSA-OAEP key transport klass (XMLEnc 1.0).

The RSA-OAEP key transport transform klass (XMLEnc 1.0). 

**Returns:** RSA-OAEP key transport transform klass.

---

### `xmlSecMSCngTransformRsaOaepEnc11GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformRsaOaepEnc11GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L239)

RSA-OAEP key transport klass (XMLEnc 1.1).

The RSA-OAEP key transport transform klass (XMLEnc 1.1). 

**Returns:** RSA-OAEP key transport transform klass.

---

### `xmlSecMSCngKeyDataEcGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataEcGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L255)

The MSCng EC CertKey data klass.

**Returns:** pointer to MSCng EC key data klass.

---

### `xmlSecMSCngTransformEcdsaSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L263)

The ECDSA-SHA1 signature transform klass.

**Returns:** ECDSA-SHA1 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L272)

The ECDSA-SHA2-256 signature transform klass.

**Returns:** ECDSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L281)

The ECDSA-SHA2-384 signature transform klass.

**Returns:** ECDSA-SHA2-384 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L290)

The ECDSA-SHA2-512 signature transform klass.

**Returns:** ECDSA-SHA2-512 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha3_256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha3_256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L299)

The ECDSA-SHA3-256 signature transform klass.

**Returns:** ECDSA-SHA3-256 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha3_384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha3_384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L306)

The ECDSA-SHA3-384 signature transform klass.

**Returns:** ECDSA-SHA3-384 signature transform klass.

---

### `xmlSecMSCngTransformEcdsaSha3_512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdsaSha3_512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L313)

The ECDSA-SHA3-512 signature transform klass.

**Returns:** ECDSA-SHA3-512 signature transform klass.

---

### `xmlSecMSCngTransformEcdhGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformEcdhGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L321)

The ECDH key agreement transform klass.

**Returns:** the ECDH key agreement transform klass.

---

### `xmlSecMSCngKeyDataDhGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataDhGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L337)

The MSCng DH CertKey data klass.

**Returns:** pointer to MSCng DH key data klass.

---

### `xmlSecMSCngTransformDhEsGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformDhEsGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L344)

The DH-ES key agreement transform klass.

**Returns:** the DH-ES key agreement transform klass.

---

### `xmlSecMSCngKeyDataXdhGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataXdhGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L360)

The MSCng XDH (X25519) key data klass.

**Returns:** pointer to MSCng XDH key data klass.

---

### `xmlSecMSCngTransformX25519GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformX25519GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L367)

The X25519 key agreement transform klass.

**Returns:** the X25519 key agreement transform klass.

---

### `xmlSecMSCngKeyDataDesGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataDesGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L383)

The DES key data klass.

**Returns:** DES key data klass.

---

### `xmlSecMSCngTransformDes3CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformDes3CbcGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L390)

Triple DES CBC encryption transform klass.

**Returns:** pointer to Triple DES encryption transform.

---

### `xmlSecMSCngTransformKWDes3GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformKWDes3GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L397)

The Triple DES key wrapper transform klass.

**Returns:** Triple DES key wrapper transform klass.

---

### `xmlSecMSCngKeyDataHmacGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataHmacGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L413)

The HMAC key data klass.

**Returns:** HMAC key data klass.

---

### `xmlSecMSCngTransformHmacMd5GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformHmacMd5GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L421)

The HMAC-MD5 transform klass.

**Returns:** the HMAC-MD5 transform klass.

---

### `xmlSecMSCngTransformHmacSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformHmacSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L430)

The HMAC-SHA1 transform klass.

**Returns:** the HMAC-SHA1 transform klass.

---

### `xmlSecMSCngTransformHmacSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformHmacSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L439)

The HMAC-SHA256 transform klass.

**Returns:** the HMAC-SHA256 transform klass.

---

### `xmlSecMSCngTransformHmacSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformHmacSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L448)

The HMAC-SHA384 transform klass.

**Returns:** the HMAC-SHA384 transform klass.

---

### `xmlSecMSCngTransformHmacSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformHmacSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L457)

The HMAC-SHA512 transform klass.

**Returns:** the HMAC-SHA512 transform klass.

---

### `xmlSecMSCngTransformMd5GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformMd5GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L473)

MD-5 digest transform klass.

**Returns:** pointer to MD-5 digest transform klass.

---

### `xmlSecMSCngKeyDataPbkdf2GetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataPbkdf2GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L488)

The PBKDF2 key data klass.

**Returns:** PBKDF2 key data klass.

---

### `xmlSecMSCngTransformPbkdf2GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformPbkdf2GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L495)

The PBKDF2 key derivation transform klass.

**Returns:** the PBKDF2 key derivation transform klass.

---

### `xmlSecMSCngKeyDataHkdfGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataHkdfGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L510)

The HKDF key data klass.

**Returns:** HKDF key data klass.

---

### `xmlSecMSCngTransformHkdfGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformHkdfGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L517)

The HKDF key derivation transform klass.

**Returns:** the HKDF key derivation transform klass.

---

### `xmlSecMSCngTransformSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L531)

SHA-1 digest transform klass.

**Returns:** pointer to SHA-1 digest transform klass.

---

### `xmlSecMSCngTransformSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L545)

SHA-256 digest transform klass.

**Returns:** pointer to SHA-256 digest transform klass.

---

### `xmlSecMSCngTransformSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L559)

SHA-384 digest transform klass.

**Returns:** pointer to SHA-256 digest transform klass.

---

### `xmlSecMSCngTransformSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L573)

SHA-512 digest transform klass.

**Returns:** pointer to SHA-512 digest transform klass.

---

### `xmlSecMSCngTransformSha3_256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha3_256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L588)

SHA3-256 digest transform klass.

**Returns:** pointer to SHA3-256 digest transform klass.

---

### `xmlSecMSCngTransformSha3_384GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha3_384GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L595)

SHA3-384 digest transform klass.

**Returns:** pointer to SHA3-384 digest transform klass.

---

### `xmlSecMSCngTransformSha3_512GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformSha3_512GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L602)

SHA3-512 digest transform klass.

**Returns:** pointer to SHA3-512 digest transform klass.

---

### `xmlSecMSCngKeyDataAesGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataAesGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L616)

The AES key data klass.

**Returns:** AES key data klass.

---

### `xmlSecMSCngTransformAes128CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformAes128CbcGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L623)

AES 128 CBC encryption transform klass.

**Returns:** pointer to AES 128 CBC encryption transform.

---

### `xmlSecMSCngTransformAes192CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformAes192CbcGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L630)

AES 192 CBC encryption transform klass.

**Returns:** pointer to AES 192 CBC encryption transform.

---

### `xmlSecMSCngTransformAes256CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformAes256CbcGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L637)

AES 256 CBC encryption transform klass.

**Returns:** pointer to AES 256 CBC encryption transform.

---

### `xmlSecMSCngTransformAes128GcmGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformAes128GcmGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L644)

AES 128 GCM encryption transform klass.

**Returns:** pointer to AES 128 GCM encryption transform.

---

### `xmlSecMSCngTransformAes192GcmGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformAes192GcmGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L651)

AES 192 GCM encryption transform klass.

**Returns:** pointer to AES 192 GCM encryption transform.

---

### `xmlSecMSCngTransformAes256GcmGetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformAes256GcmGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L658)

AES 256 GCM encryption transform klass.

**Returns:** pointer to AES 256 GCM encryption transform.

---

### `xmlSecMSCngTransformKWAes128GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformKWAes128GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L665)

The AES-128 key wrapper transform klass.

**Returns:** AES-128 key wrapper transform klass.

---

### `xmlSecMSCngTransformKWAes192GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformKWAes192GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L672)

The AES-192 key wrapper transform klass.

**Returns:** AES-192 key wrapper transform klass.

---

### `xmlSecMSCngTransformKWAes256GetKlass`

```c
xmlSecTransformId xmlSecMSCngTransformKWAes256GetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L679)

The AES-256 key wrapper transform klass.

**Returns:** AES-256 key wrapper transform klass.

---

### `xmlSecMSCngKeyDataDEREncodedKeyValueGetKlass`

```c
xmlSecKeyDataId xmlSecMSCngKeyDataDEREncodedKeyValueGetKlass(void);
```

*Source:* [include/xmlsec/mscng/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.12/include/xmlsec/mscng/crypto.h#L687)

The public key algorithm and value are DER-encoded in accordance with the value that would be used in the Subject Public Key Info field of an X.509 certificate, per section 4.1.2.7 of [RFC5280]. The DER-encoded value is then base64-encoded.

[https://www.w3.org/TR/xmldsig-core1/#sec-DEREncodedKeyValue](https://www.w3.org/TR/xmldsig-core1/#sec-DEREncodedKeyValue)

```c
<!--targetNamespace="http://www.w3.org/2009/xmldsig11#"-->
<elementname="DEREncodedKeyValue"type="dsig11:DEREncodedKeyValueType"/>
<complexTypename="DEREncodedKeyValueType">
<simpleContent>
<extensionbase="base64Binary">
<attributename=&quot;Id&quot;type="ID"use="optional"/>
</extension>
</simpleContent>
</complexType>
```

**Returns:** the <dsig11:DEREncodedKeyValue/>element processing key data klass.

---
