# MsCrypto Crypto Engine

**API Group:** `xmlsec_mscrypto_crypto`

Cryptographic operations provided by the MsCrypto back-end.

Symmetric keys implementation for MSCrypto.

Signatures implementation for MSCrypto.

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

DES Key Transport transforms implementation for MSCrypto.

RSA Key Transport transforms implementation for MSCrypto.

HMAC transforms implementation for MSCrypto.

Digests transforms implementation for MSCrypto.

Crypto transforms implementation for Microsoft Crypto API.

Ciphers transforms implementation for MSCrypto.

## Macros

### `xmlSecMSCryptoKeyDataDsaId`

*Defined as:* `xmlSecMSCryptoKeyDataDsaGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L58)

The DSA key klass.

---

### `xmlSecMSCryptoTransformDsaSha1Id`

*Defined as:* `xmlSecMSCryptoTransformDsaSha1GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L65)

The DSA SHA1 signature transform klass.

---

### `xmlSecMSCryptoKeyDataGost2001Id`

*Defined as:* `xmlSecMSCryptoKeyDataGost2001GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L81)

The GOST2001 key klass.

---

### `xmlSecMSCryptoTransformGost2001GostR3411_94Id`

*Defined as:* `xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass()`

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

The GOST2001-GOSTR3411-94 transform klass.

The GOST2001 GOSTR3411_94 signature transform klass.

---

### `xmlSecMSCryptoKeyDataGost2012_256Id`

*Defined as:* `xmlSecMSCryptoKeyDataGost2012_256GetKlass()`

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

The GOST R 34.10-2012 256 key klass.

---

### `xmlSecMSCryptoKeyDataGost2012_512Id`

*Defined as:* `xmlSecMSCryptoKeyDataGost2012_512GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L113)

The GOST R 34.10-2012 512 key klass.

---

### `xmlSecMSCryptoTransformGost2012_256Id`

*Defined as:* `xmlSecMSCryptoTransformGost2012_256GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L121)

The GOST2012-256 signature transform klass.

The GOST R 34.10-2012 - GOST R 3411-2012 256 bit signature transform klass.

---

### `xmlSecMSCryptoTransformGost2012_512Id`

*Defined as:* `xmlSecMSCryptoTransformGost2012_512GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L129)

The GOST2012-512 signature transform klass.

The GOST R 34.10-2012 - GOST R 3411-2012 512 bit signature transform klass.

---

### `xmlSecMSCryptoKeyDataRsaId`

*Defined as:* `xmlSecMSCryptoKeyDataRsaGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L145)

The RSA key klass.

---

### `xmlSecMSCryptoTransformRsaMd5Id`

*Defined as:* `xmlSecMSCryptoTransformRsaMd5GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L153)

The RSA-MD5 signature transform klass.

---

### `xmlSecMSCryptoTransformRsaSha1Id`

*Defined as:* `xmlSecMSCryptoTransformRsaSha1GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L162)

The RSA-SHA1 signature transform klass.

---

### `xmlSecMSCryptoTransformRsaSha256Id`

*Defined as:* `xmlSecMSCryptoTransformRsaSha256GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L171)

The RSA-SHA2-256 signature transform klass.

---

### `xmlSecMSCryptoTransformRsaSha384Id`

*Defined as:* `xmlSecMSCryptoTransformRsaSha384GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L180)

The RSA-SHA2-384 signature transform klass.

---

### `xmlSecMSCryptoTransformRsaSha512Id`

*Defined as:* `xmlSecMSCryptoTransformRsaSha512GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L189)

The RSA-SHA2-512 signature transform klass.

---

### `xmlSecMSCryptoTransformRsaPkcs1Id`

*Defined as:* `xmlSecMSCryptoTransformRsaPkcs1GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L198)

The RSA PKCS1 key transport transform klass.

---

### `xmlSecMSCryptoTransformRsaOaepId`

*Defined as:* `xmlSecMSCryptoTransformRsaOaepGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L208)

The RSA OAEP key transport klass (MSCrypto only).

The RSA OAEP key transport transform klass. MSCrypto only supports SHA1 for digest and MGF1.

---

### `xmlSecMSCryptoTransformMd5Id`

*Defined as:* `xmlSecMSCryptoTransformMd5GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L224)

The MD5 digest transform klass.

---

### `xmlSecMSCryptoTransformSha1Id`

*Defined as:* `xmlSecMSCryptoTransformSha1GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L240)

The SHA1 digest transform klass.

---

### `xmlSecMSCryptoTransformSha256Id`

*Defined as:* `xmlSecMSCryptoTransformSha256GetKlass()`

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

The SHA2-256 digest transform klass.

---

### `xmlSecMSCryptoTransformSha384Id`

*Defined as:* `xmlSecMSCryptoTransformSha384GetKlass()`

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

The SHA2-384 digest transform klass.

---

### `xmlSecMSCryptoTransformSha512Id`

*Defined as:* `xmlSecMSCryptoTransformSha512GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L285)

The SHA2-512 digest transform klass.

---

### `xmlSecMSCryptoTransformGostR3411_94Id`

*Defined as:* `xmlSecMSCryptoTransformGostR3411_94GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L300)

The GOSTR3411_94 digest transform klass.

---

### `xmlSecMSCryptoTransformGostR3411_2012_256Id`

*Defined as:* `xmlSecMSCryptoTransformGostR3411_2012_256GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L317)

The GOST R 34.11-2012 256 digest transform klass.

---

### `xmlSecMSCryptoTransformGostR3411_2012_512Id`

*Defined as:* `xmlSecMSCryptoTransformGostR3411_2012_512GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L324)

The GOST R 34.11-2012 512 digest transform klass.

---

### `xmlSecMSCryptoKeyDataAesId`

*Defined as:* `xmlSecMSCryptoKeyDataAesGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L340)

The AES key data klass.

---

### `xmlSecMSCryptoTransformAes128CbcId`

*Defined as:* `xmlSecMSCryptoTransformAes128CbcGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L349)

The AES128 CBC cipher transform klass.

---

### `xmlSecMSCryptoTransformAes192CbcId`

*Defined as:* `xmlSecMSCryptoTransformAes192CbcGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L356)

The AES192 CBC cipher transform klass.

---

### `xmlSecMSCryptoTransformAes256CbcId`

*Defined as:* `xmlSecMSCryptoTransformAes256CbcGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L363)

The AES256 CBC cipher transform klass.

---

### `xmlSecMSCryptoTransformKWAes128Id`

*Defined as:* `xmlSecMSCryptoTransformKWAes128GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L370)

The AES 128 key wrap transform klass.

---

### `xmlSecMSCryptoTransformKWAes192Id`

*Defined as:* `xmlSecMSCryptoTransformKWAes192GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L377)

The AES 192 key wrap transform klass.

---

### `xmlSecMSCryptoTransformKWAes256Id`

*Defined as:* `xmlSecMSCryptoTransformKWAes256GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L384)

The AES 256 key wrap transform klass.

---

### `xmlSecMSCryptoKeyDataDesId`

*Defined as:* `xmlSecMSCryptoKeyDataDesGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L401)

The DES key data klass.

---

### `xmlSecMSCryptoTransformDes3CbcId`

*Defined as:* `xmlSecMSCryptoTransformDes3CbcGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L408)

The DES3 CBC cipher transform klass.

---

### `xmlSecMSCryptoTransformKWDes3Id`

*Defined as:* `xmlSecMSCryptoTransformKWDes3GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L415)

The DES3 KW transform klass.

---

### `xmlSecMSCryptoKeyDataHmacId`

*Defined as:* `xmlSecMSCryptoKeyDataHmacGetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L432)

The HMAC key klass.

---

### `xmlSecMSCryptoTransformHmacMd5Id`

*Defined as:* `xmlSecMSCryptoTransformHmacMd5GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L443)

The HMAC with MD5 signature transform klass.

---

### `xmlSecMSCryptoTransformHmacRipemd160Id`

*Defined as:* `xmlSecMSCryptoTransformHmacRipemd160GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L453)

The HMAC with RipeMD160 signature transform klass.

---

### `xmlSecMSCryptoTransformHmacSha1Id`

*Defined as:* `xmlSecMSCryptoTransformHmacSha1GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L462)

The HMAC with SHA1 signature transform klass.

---

### `xmlSecMSCryptoTransformHmacSha224Id`

*Defined as:* `xmlSecMSCryptoTransformHmacSha224GetKlass()`

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

The HMAC with SHA2-224 signature transform klass.

---

### `xmlSecMSCryptoTransformHmacSha256Id`

*Defined as:* `xmlSecMSCryptoTransformHmacSha256GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L480)

The HMAC with SHA2-256 signature transform klass.

---

### `xmlSecMSCryptoTransformHmacSha384Id`

*Defined as:* `xmlSecMSCryptoTransformHmacSha384GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L489)

The HMAC with SHA2-384 signature transform klass.

---

### `xmlSecMSCryptoTransformHmacSha512Id`

*Defined as:* `xmlSecMSCryptoTransformHmacSha512GetKlass()`

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L498)

The HMAC with SHA2-512 signature transform klass.

---

## Functions

### `xmlSecCryptoGetFunctions_mscrypto`

```c
xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_mscrypto(void);
```

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

Gets MSCrypto specific functions table.

**Returns:** xmlsec-mscrypto functions table.

---

### `xmlSecMSCryptoInit`

```c
int xmlSecMSCryptoInit(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L33)

Initializes the MSCrypto crypto engine.

XMLSec library specific crypto engine initialization. 

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

---

### `xmlSecMSCryptoShutdown`

```c
int xmlSecMSCryptoShutdown(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L34)

XMLSec library specific crypto engine shutdown.

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

---

### `xmlSecMSCryptoKeysMngrInit`

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

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

Adds MSCrypto specific key data stores.

Adds MSCrypto specific key data stores in keys manager. 

**Parameters:**

- `mngr` — the pointer to keys manager.


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

---

### `xmlSecMSCryptoGenerateRandom`

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

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L37)

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.

---

### `xmlSecMSCryptoErrorsDefaultCallback`

```c
void xmlSecMSCryptoErrorsDefaultCallback(const char *file, int line, const char *func, const char *errorObject, const char *errorSubject, int reason, const char *msg);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L40)

The default errors reporting callback function. Just a pass through to the default callback.

**Parameters:**

- `file` — the error location file name (**FILE** macro).
- `line` — the error location line number (**LINE** macro).
- `func` — the error location function name (**FUNCTION** macro).
- `errorObject` — the error specific error object
- `errorSubject` — the error specific error subject.
- `reason` — the error code.
- `msg` — the additional error message.

---

### `xmlSecMSCryptoKeyDataDsaGetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataDsaGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L60)

The DSA key data klass.

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

---

### `xmlSecMSCryptoTransformDsaSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformDsaSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L67)

The DSA-SHA1 signature transform klass.

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

---

### `xmlSecMSCryptoKeyDataGost2001GetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataGost2001GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L83)

The GOST2001 key data klass.

**Returns:** pointer to GOST2001 key data klass.

---

### `xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass(void);
```

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

The GOST2001-GOSTR3411_94 signature transform klass.

The GOST2001-GOSTR3411_94 signature transform klass. 

**Returns:** GOST2001-GOSTR3411_94 signature transform klass.

---

### `xmlSecMSCryptoKeyDataGost2012_256GetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataGost2012_256GetKlass(void);
```

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

The GOST2012_256 key data klass.

**Returns:** pointer to GOST2012_256 key data klass.

---

### `xmlSecMSCryptoKeyDataGost2012_512GetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataGost2012_512GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L115)

The GOST2012_512 key data klass.

**Returns:** pointer to GOST2012_512 key data klass.

---

### `xmlSecMSCryptoTransformGost2012_256GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformGost2012_256GetKlass(void);
```

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

The GOST R 34.10-2012 signature transform klass.

**Returns:** GOST2001-GOST R 34.10-2012 signature transform klass.

---

### `xmlSecMSCryptoTransformGost2012_512GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformGost2012_512GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L131)

The GOST R 34.10-2012 signature transform klass.

**Returns:** GOST2001-GOST R 34.10-2012 signature transform klass.

---

### `xmlSecMSCryptoKeyDataRsaGetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataRsaGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L147)

The MSCrypto RSA CertKey data klass.

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

---

### `xmlSecMSCryptoTransformRsaMd5GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaMd5GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L155)

The RSA-MD5 signature transform klass.

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

---

### `xmlSecMSCryptoTransformRsaSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L164)

The RSA-SHA1 signature transform klass.

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

---

### `xmlSecMSCryptoTransformRsaSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L173)

The RSA-SHA2-256 signature transform klass.

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

---

### `xmlSecMSCryptoTransformRsaSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L182)

The RSA-SHA2-384 signature transform klass.

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

---

### `xmlSecMSCryptoTransformRsaSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L191)

The RSA-SHA2-512 signature transform klass.

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

---

### `xmlSecMSCryptoTransformRsaPkcs1GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaPkcs1GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L200)

The RSA-PKCS1 key transport transform klass.

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

---

### `xmlSecMSCryptoTransformRsaOaepGetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformRsaOaepGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L210)

The RSA-OAEP key transport transform klass.

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

---

### `xmlSecMSCryptoTransformMd5GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformMd5GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L226)

SHA-1 digest transform klass.

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

---

### `xmlSecMSCryptoTransformSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L242)

SHA-1 digest transform klass.

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

---

### `xmlSecMSCryptoTransformSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L257)

SHA-256 digest transform klass.

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

---

### `xmlSecMSCryptoTransformSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformSha384GetKlass(void);
```

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

SHA-384 digest transform klass.

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

---

### `xmlSecMSCryptoTransformSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L287)

SHA-512 digest transform klass.

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

---

### `xmlSecMSCryptoTransformGostR3411_94GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformGostR3411_94GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L302)

GOSTR3411_94 digest transform klass.

**Returns:** pointer to GOSTR3411_94 digest transform klass.

---

### `xmlSecMSCryptoTransformGostR3411_2012_256GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformGostR3411_2012_256GetKlass(void);
```

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

GOSTR3411_2012_256 digest transform klass.

**Returns:** pointer to GOSTR3411_2012_256 digest transform klass.

---

### `xmlSecMSCryptoTransformGostR3411_2012_512GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformGostR3411_2012_512GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L326)

GOSTR3411_2012_512 digest transform klass.

**Returns:** pointer to GOSTR3411_2012_512 digest transform klass.

---

### `xmlSecMSCryptoKeyDataAesGetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataAesGetKlass(void);
```

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

The AES key data klass.

**Returns:** AES key data klass.

---

### `xmlSecMSCryptoKeyDataAesSet`

```c
int xmlSecMSCryptoKeyDataAesSet(xmlSecKeyDataPtr data, const xmlSecByte *buf, xmlSecSize bufSize);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L343)

Sets the value of AES key data.

**Parameters:**

- `data` — the pointer to AES key data.
- `buf` — the pointer to key value.
- `bufSize` — the key value size (in bytes).


**Returns:** 0 on success or a negative value if an error occurs.

---

### `xmlSecMSCryptoTransformAes128CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformAes128CbcGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L351)

AES 128 CBC encryption transform klass.

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

---

### `xmlSecMSCryptoTransformAes192CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformAes192CbcGetKlass(void);
```

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

AES 192 CBC encryption transform klass.

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

---

### `xmlSecMSCryptoTransformAes256CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformAes256CbcGetKlass(void);
```

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

AES 256 CBC encryption transform klass.

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

---

### `xmlSecMSCryptoTransformKWAes128GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformKWAes128GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L372)

The AES-128 key wrapper transform klass.

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

---

### `xmlSecMSCryptoTransformKWAes192GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformKWAes192GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L379)

The AES-192 key wrapper transform klass.

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

---

### `xmlSecMSCryptoTransformKWAes256GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformKWAes256GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L386)

The AES-256 key wrapper transform klass.

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

---

### `xmlSecMSCryptoKeyDataDesGetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataDesGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L403)

The DES key data klass.

**Returns:** DES key data klass.

---

### `xmlSecMSCryptoTransformDes3CbcGetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformDes3CbcGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L410)

Triple DES CBC encryption transform klass.

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

---

### `xmlSecMSCryptoTransformKWDes3GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformKWDes3GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L417)

The Triple DES key wrapper transform klass.

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

---

### `xmlSecMSCryptoKeyDataHmacGetKlass`

```c
xmlSecKeyDataId xmlSecMSCryptoKeyDataHmacGetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L434)

The HMAC key data klass.

**Returns:** HMAC key data klass.

---

### `xmlSecMSCryptoKeyDataHmacSet`

```c
int xmlSecMSCryptoKeyDataHmacSet(xmlSecKeyDataPtr data, const xmlSecByte *buf, xmlSecSize bufSize);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L435)

Sets the value of HMAC key data.

**Parameters:**

- `data` — the pointer to HMAC key data.
- `buf` — the pointer to key value.
- `bufSize` — the key value size (in bytes).


**Returns:** 0 on success or a negative value if an error occurs.

---

### `xmlSecMSCryptoTransformHmacMd5GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacMd5GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L445)

The HMAC-MD5 transform klass.

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

---

### `xmlSecMSCryptoTransformHmacRipemd160GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacRipemd160GetKlass(void);
```

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

The HMAC-RIPEMD160 transform klass.

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

---

### `xmlSecMSCryptoTransformHmacSha1GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacSha1GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L464)

The HMAC-SHA1 transform klass.

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

---

### `xmlSecMSCryptoTransformHmacSha224GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacSha224GetKlass(void);
```

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

The HMAC-SHA224 transform klass.

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

---

### `xmlSecMSCryptoTransformHmacSha256GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacSha256GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L482)

The HMAC-SHA256 transform klass.

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

---

### `xmlSecMSCryptoTransformHmacSha384GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacSha384GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L491)

The HMAC-SHA384 transform klass.

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

---

### `xmlSecMSCryptoTransformHmacSha512GetKlass`

```c
xmlSecTransformId xmlSecMSCryptoTransformHmacSha512GetKlass(void);
```

*Source:* [include/xmlsec/mscrypto/crypto.h](https://github.com/lsh123/xmlsec/blob/1.3.11/include/xmlsec/mscrypto/crypto.h#L500)

The HMAC-SHA512 transform klass.

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

---
