# GnuTLS Crypto Engine

**API Group:** `xmlsec_gnutls_crypto`

Cryptographic operations provided by the GnuTLS back-end.

Symmetric keys implementation for GnuTLS.

Signatures implementation for GnuTLS.

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

DES Key Transport transforms implementation for GnuTLS.

RSA Key Transport transforms implementation for GnuTLS.

Key agreement transforms implementation for GnuTLS.

KDF (key derivation) transforms implementation for GnuTLS.

HMAC transforms implementation for GnuTLS.

Digests transforms implementation for GnuTLS.

DEREncodedKeyValue processing for GnuTLS.

Crypto transforms implementation for GnuTLS.

Ciphers transforms implementation for GnuTLS.

Ciphers AEAD (GCM and ChaCha20-Poly1305) transforms implementation for GnuTLS.

Private/public keys implementation for GnuTLS.

## Macros

### `xmlSecGnuTLSKeyDataAesId`

*Defined as:* `xmlSecGnuTLSKeyDataAesGetKlass()`

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

The AES key data klass.

---

### `xmlSecGnuTLSTransformAes128CbcId`

*Defined as:* `xmlSecGnuTLSTransformAes128CbcGetKlass()`

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

The AES128 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformAes192CbcId`

*Defined as:* `xmlSecGnuTLSTransformAes192CbcGetKlass()`

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

The AES192 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformAes256CbcId`

*Defined as:* `xmlSecGnuTLSTransformAes256CbcGetKlass()`

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

The AES256 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformAes128GcmId`

*Defined as:* `xmlSecGnuTLSTransformAes128GcmGetKlass()`

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

The AES128 GCM cipher transform klass.

---

### `xmlSecGnuTLSTransformAes192GcmId`

*Defined as:* `xmlSecGnuTLSTransformAes192GcmGetKlass()`

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

The AES192 GCM cipher transform klass.

---

### `xmlSecGnuTLSTransformAes256GcmId`

*Defined as:* `xmlSecGnuTLSTransformAes256GcmGetKlass()`

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

The AES256 GCM cipher transform klass.

---

### `xmlSecGnuTLSTransformKWAes128Id`

*Defined as:* `xmlSecGnuTLSTransformKWAes128GetKlass()`

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

The AES 128 key wrap transform klass.

---

### `xmlSecGnuTLSTransformKWAes192Id`

*Defined as:* `xmlSecGnuTLSTransformKWAes192GetKlass()`

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

The AES 192 key wrap transform klass.

---

### `xmlSecGnuTLSTransformKWAes256Id`

*Defined as:* `xmlSecGnuTLSTransformKWAes256GetKlass()`

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

The AES 256 key wrap transform klass.

---

### `xmlSecGnuTLSKeyDataChaCha20Id`

*Defined as:* `xmlSecGnuTLSKeyDataChaCha20GetKlass()`

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

The ChaCha20 key data klass.

---

### `xmlSecGnuTLSTransformChaCha20Id`

*Defined as:* `xmlSecGnuTLSTransformChaCha20GetKlass()`

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

The ChaCha20 stream cipher transform klass.

---

### `xmlSecGnuTLSTransformChaCha20Poly1305Id`

*Defined as:* `xmlSecGnuTLSTransformChaCha20Poly1305GetKlass()`

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

The ChaCha20-Poly1305 AEAD cipher transform klass.

---

### `xmlSecGnuTLSKeyDataDesId`

*Defined as:* `xmlSecGnuTLSKeyDataDesGetKlass()`

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

The DES key data klass.

---

### `xmlSecGnuTLSTransformDes3CbcId`

*Defined as:* `xmlSecGnuTLSTransformDes3CbcGetKlass()`

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

The DES3 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformKWDes3Id`

*Defined as:* `xmlSecGnuTLSTransformKWDes3GetKlass()`

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

The DES3 KW transform klass.

---

### `xmlSecGnuTLSKeyDataCamelliaId`

*Defined as:* `xmlSecGnuTLSKeyDataCamelliaGetKlass()`

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

The Camellia key data klass.

---

### `xmlSecGnuTLSTransformCamellia128CbcId`

*Defined as:* `xmlSecGnuTLSTransformCamellia128CbcGetKlass()`

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

The Camellia128 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformCamellia192CbcId`

*Defined as:* `xmlSecGnuTLSTransformCamellia192CbcGetKlass()`

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

The Camellia192 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformCamellia256CbcId`

*Defined as:* `xmlSecGnuTLSTransformCamellia256CbcGetKlass()`

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

The Camellia256 CBC cipher transform klass.

---

### `xmlSecGnuTLSTransformKWCamellia128Id`

*Defined as:* `xmlSecGnuTLSTransformKWCamellia128GetKlass()`

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

The Camellia 128 key wrap transform klass.

---

### `xmlSecGnuTLSTransformKWCamellia192Id`

*Defined as:* `xmlSecGnuTLSTransformKWCamellia192GetKlass()`

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

The Camellia 192 key wrap transform klass.

---

### `xmlSecGnuTLSTransformKWCamellia256Id`

*Defined as:* `xmlSecGnuTLSTransformKWCamellia256GetKlass()`

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

The Camellia 256 key wrap transform klass.

---

### `xmlSecGnuTLSKeyDataDsaId`

*Defined as:* `xmlSecGnuTLSKeyDataDsaGetKlass()`

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

The DSA key klass.

---

### `xmlSecGnuTLSTransformDsaSha1Id`

*Defined as:* `xmlSecGnuTLSTransformDsaSha1GetKlass()`

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

The DSA SHA1 signature transform klass.

---

### `xmlSecGnuTLSTransformDsaSha256Id`

*Defined as:* `xmlSecGnuTLSTransformDsaSha256GetKlass()`

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

The DSA SHA2-256 signature transform klass.

---

### `xmlSecGnuTLSKeyDataEcId`

*Defined as:* `xmlSecGnuTLSKeyDataEcGetKlass()`

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

The EC key klass.

---

### `xmlSecGnuTLSTransformEcdsaSha1Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha1GetKlass()`

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

The ECDSA-SHA1 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha224Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha224GetKlass()`

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

The ECDSA-SHA2-224 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha256Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha256GetKlass()`

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

The ECDSA-SHA2-256 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha384Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha384GetKlass()`

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

The ECDSA-SHA2-384 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha512Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha512GetKlass()`

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

The ECDSA-SHA2-512 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha3_224Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha3_224GetKlass()`

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

The ECDSA-SHA3-224 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha3_256Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha3_256GetKlass()`

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

The ECDSA-SHA3-256 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha3_384Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha3_384GetKlass()`

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

The ECDSA-SHA3-384 signature transform klass.

---

### `xmlSecGnuTLSTransformEcdsaSha3_512Id`

*Defined as:* `xmlSecGnuTLSTransformEcdsaSha3_512GetKlass()`

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

The ECDSA-SHA3-512 signature transform klass.

---

### `xmlSecGnuTLSKeyDataGost2001Id`

*Defined as:* `xmlSecGnuTLSKeyDataGost2001GetKlass     ()`

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

The GOST 2001 key klass.

---

### `xmlSecGnuTLSTransformGostR3411_94Id`

*Defined as:* `xmlSecGnuTLSTransformGostR3411_94GetKlass()`

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

The GOSTR3411_94 digest transform klass.

---

### `xmlSecGnuTLSTransformGost2001GostR3411_94Id`

*Defined as:* `xmlSecGnuTLSTransformGost2001GostR3411_94GetKlass()`

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

The GOST-2001 GOSTR3411-94 signature transform klass.

The GOST2001 GOSTR3411_94 signature transform klass.

---

### `xmlSecGnuTLSKeyDataGost2012_256Id`

*Defined as:* `xmlSecGnuTLSKeyDataGost2012_256GetKlass()`

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

The GOST R 34.10-2012 256 bit key klass.

---

### `xmlSecGnuTLSKeyDataGost2012_512Id`

*Defined as:* `xmlSecGnuTLSKeyDataGost2012_512GetKlass()`

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

The GOST R 34.10-2012 512 bit key klass.

---

### `xmlSecGnuTLSTransformGostR3411_2012_256Id`

*Defined as:* `xmlSecGnuTLSTransformGostR3411_2012_256GetKlass()`

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

The GOST R 34.11-2012/256 digest transform klass.

The GOST R 34.11-2012 256 bit digest transform klass.

---

### `xmlSecGnuTLSTransformGostR3411_2012_512Id`

*Defined as:* `xmlSecGnuTLSTransformGostR3411_2012_512GetKlass()`

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

The GOST R 34.11-2012/512 digest transform klass.

The GOST R 34.11-2012 512 bit digest transform klass.

---

### `xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_256Id`

*Defined as:* `xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_256GetKlass()`

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

The GOST-2012 256-bit signature transform klass.

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

---

### `xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_512Id`

*Defined as:* `xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_512GetKlass()`

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

The GOST-2012 512-bit signature transform klass.

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

---

### `xmlSecGnuTLSKeyDataMLDSAId`

*Defined as:* `xmlSecGnuTLSKeyDataMLDSAGetKlass()`

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

The ML-DSA key klass (post-quantum, per FIPS 204).

The ML-DSA key klass (post-quantum signature algorithm per FIPS 204).

---

### `xmlSecGnuTLSTransformMLDSA44Id`

*Defined as:* `xmlSecGnuTLSTransformMLDSA44GetKlass()`

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

The ML-DSA-44 signature transform klass.

---

### `xmlSecGnuTLSTransformMLDSA65Id`

*Defined as:* `xmlSecGnuTLSTransformMLDSA65GetKlass()`

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

The ML-DSA-65 signature transform klass.

---

### `xmlSecGnuTLSTransformMLDSA87Id`

*Defined as:* `xmlSecGnuTLSTransformMLDSA87GetKlass()`

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

The ML-DSA-87 signature transform klass.

---

### `xmlSecGnuTLSKeyDataEdDSAId`

*Defined as:* `xmlSecGnuTLSKeyDataEdDSAGetKlass()`

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

The EdDSA key klass (Ed25519 and Ed448).

---

### `xmlSecGnuTLSTransformEdDSAEd25519Id`

*Defined as:* `xmlSecGnuTLSTransformEdDSAEd25519GetKlass()`

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

The EdDSA-Ed25519 signature transform klass.

---

### `xmlSecGnuTLSTransformEdDSAEd448Id`

*Defined as:* `xmlSecGnuTLSTransformEdDSAEd448GetKlass()`

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

The EdDSA-Ed448 signature transform klass.

---

### `xmlSecGnuTLSKeyDataXdhId`

*Defined as:* `xmlSecGnuTLSKeyDataXdhGetKlass()`

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

The XDH key klass (X25519 and X448).

---

### `xmlSecGnuTLSTransformX25519Id`

*Defined as:* `xmlSecGnuTLSTransformX25519GetKlass()`

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

The X25519 key agreement transform klass.

---

### `xmlSecGnuTLSTransformX448Id`

*Defined as:* `xmlSecGnuTLSTransformX448GetKlass()`

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

The X448 key agreement transform klass.

---

### `xmlSecGnuTLSTransformEcdhId`

*Defined as:* `xmlSecGnuTLSTransformEcdhGetKlass()`

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

The ECDH-ES key agreement transform klass.

---

### `xmlSecGnuTLSKeyDataConcatKdfId`

*Defined as:* `xmlSecGnuTLSKeyDataConcatKdfGetKlass()`

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

The ConcatKDF key klass.

---

### `xmlSecGnuTLSTransformConcatKdfId`

*Defined as:* `xmlSecGnuTLSTransformConcatKdfGetKlass()`

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

The ConcatKDF key derivation transform klass.

---

### `xmlSecGnuTLSKeyDataHmacId`

*Defined as:* `xmlSecGnuTLSKeyDataHmacGetKlass()`

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

The HMAC key klass.

---

### `xmlSecGnuTLSTransformHmacSha1Id`

*Defined as:* `xmlSecGnuTLSTransformHmacSha1GetKlass()`

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

The HMAC with SHA1 signature transform klass.

---

### `xmlSecGnuTLSTransformHmacSha224Id`

*Defined as:* `xmlSecGnuTLSTransformHmacSha224GetKlass()`

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

The HMAC with SHA2-224 signature transform klass.

---

### `xmlSecGnuTLSTransformHmacSha256Id`

*Defined as:* `xmlSecGnuTLSTransformHmacSha256GetKlass()`

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

The HMAC with SHA2-256 signature transform klass.

---

### `xmlSecGnuTLSTransformHmacSha384Id`

*Defined as:* `xmlSecGnuTLSTransformHmacSha384GetKlass()`

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

The HMAC with SHA2-384 signature transform klass.

---

### `xmlSecGnuTLSTransformHmacSha512Id`

*Defined as:* `xmlSecGnuTLSTransformHmacSha512GetKlass()`

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

The HMAC with SHA2-512 signature transform klass.

---

### `xmlSecGnuTLSKeyDataPbkdf2Id`

*Defined as:* `xmlSecGnuTLSKeyDataPbkdf2GetKlass()`

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

The PBKDF2 key klass.

---

### `xmlSecGnuTLSTransformPbkdf2Id`

*Defined as:* `xmlSecGnuTLSTransformPbkdf2GetKlass()`

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

The PBKDF2 key derivation transform klass.

---

### `xmlSecGnuTLSKeyDataHkdfId`

*Defined as:* `xmlSecGnuTLSKeyDataHkdfGetKlass()`

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

The HKDF key klass.

---

### `xmlSecGnuTLSTransformHkdfId`

*Defined as:* `xmlSecGnuTLSTransformHkdfGetKlass()`

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

The HKDF key derivation transform klass.

---

### `xmlSecGnuTLSKeyDataRsaId`

*Defined as:* `xmlSecGnuTLSKeyDataRsaGetKlass()`

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

The RSA key klass.

---

### `xmlSecGnuTLSTransformRsaSha1Id`

*Defined as:* `xmlSecGnuTLSTransformRsaSha1GetKlass()`

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

The RSA-SHA1 signature transform klass.

---

### `xmlSecGnuTLSTransformRsaSha224Id`

*Defined as:* `xmlSecGnuTLSTransformRsaSha224GetKlass()`

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

The RSA-SHA2-224 signature transform klass.

---

### `xmlSecGnuTLSTransformRsaSha256Id`

*Defined as:* `xmlSecGnuTLSTransformRsaSha256GetKlass()`

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

The RSA-SHA2-256 signature transform klass.

---

### `xmlSecGnuTLSTransformRsaSha384Id`

*Defined as:* `xmlSecGnuTLSTransformRsaSha384GetKlass()`

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

The RSA-SHA2-384 signature transform klass.

---

### `xmlSecGnuTLSTransformRsaSha512Id`

*Defined as:* `xmlSecGnuTLSTransformRsaSha512GetKlass()`

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

The RSA-SHA2-512 signature transform klass.

---

### `xmlSecGnuTLSTransformRsaPssSha256Id`

*Defined as:* `xmlSecGnuTLSTransformRsaPssSha256GetKlass()`

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

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

---

### `xmlSecGnuTLSTransformRsaPssSha384Id`

*Defined as:* `xmlSecGnuTLSTransformRsaPssSha384GetKlass()`

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

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

---

### `xmlSecGnuTLSTransformRsaPssSha512Id`

*Defined as:* `xmlSecGnuTLSTransformRsaPssSha512GetKlass()`

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

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

---

### `xmlSecGnuTLSTransformRsaPkcs1Id`

*Defined as:* `xmlSecGnuTLSTransformRsaPkcs1GetKlass()`

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

The RSA PKCS1 key transport transform klass.

---

### `xmlSecGnuTLSTransformRsaOaepId`

*Defined as:* `xmlSecGnuTLSTransformRsaOaepGetKlass()`

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

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

---

### `xmlSecGnuTLSTransformRsaOaepEnc11Id`

*Defined as:* `xmlSecGnuTLSTransformRsaOaepEnc11GetKlass()`

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

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

---

### `xmlSecGnuTLSTransformSha1Id`

*Defined as:* `xmlSecGnuTLSTransformSha1GetKlass()`

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

The SHA1 digest transform klass.

---

### `xmlSecGnuTLSTransformSha224Id`

*Defined as:* `xmlSecGnuTLSTransformSha224GetKlass()`

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

The SHA2-224 digest transform klass.

---

### `xmlSecGnuTLSTransformSha256Id`

*Defined as:* `xmlSecGnuTLSTransformSha256GetKlass()`

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

The SHA2-256 digest transform klass.

---

### `xmlSecGnuTLSTransformSha384Id`

*Defined as:* `xmlSecGnuTLSTransformSha384GetKlass()`

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

The SHA2-384 digest transform klass.

---

### `xmlSecGnuTLSTransformSha512Id`

*Defined as:* `xmlSecGnuTLSTransformSha512GetKlass()`

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

The SHA2-512 digest transform klass.

---

### `xmlSecGnuTLSTransformSha3_224Id`

*Defined as:* `xmlSecGnuTLSTransformSha3_224GetKlass()`

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

The SHA3-224 digest transform klass.

---

### `xmlSecGnuTLSTransformSha3_256Id`

*Defined as:* `xmlSecGnuTLSTransformSha3_256GetKlass()`

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

The SHA3-256 digest transform klass.

---

### `xmlSecGnuTLSTransformSha3_384Id`

*Defined as:* `xmlSecGnuTLSTransformSha3_384GetKlass()`

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

The SHA3-384 digest transform klass.

---

### `xmlSecGnuTLSTransformSha3_512Id`

*Defined as:* `xmlSecGnuTLSTransformSha3_512GetKlass()`

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

The SHA3-512 digest transform klass.

---

### `xmlSecGnuTLSKeyDataDEREncodedKeyValueId`

*Defined as:* `xmlSecGnuTLSKeyDataDEREncodedKeyValueGetKlass()`

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

The GnuTLS DEREncodedKeyValue data klass.

---

## Functions

### `xmlSecGnuTLSInit`

```c
int xmlSecGnuTLSInit(void);
```

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

Initializes the GnuTLS crypto engine.

End exclude from Doxygen

XMLSec library specific crypto engine initialization. 

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

---

### `xmlSecGnuTLSShutdown`

```c
int xmlSecGnuTLSShutdown(void);
```

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

XMLSec library specific crypto engine shutdown.

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

---

### `xmlSecGnuTLSKeysMngrInit`

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

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

Adds GnuTLS specific key data stores.

Adds GnuTLS specific key data stores in keys manager. 

**Parameters:**

- `mngr` — the pointer to keys manager.


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

---

### `xmlSecGnuTLSGenerateRandom`

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

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

Generates 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.

---

### `xmlSecCryptoGetFunctions_gnutls`

```c
xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_gnutls(void);
```

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

Gets the pointer to xmlsec-gnutls functions table.

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

---

### `xmlSecGnuTLSAsymmetricKeyCreatePub`

```c
xmlSecKeyPtr xmlSecGnuTLSAsymmetricKeyCreatePub(gnutls_pubkey_t pubkey);
```

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

Creates XMLSec key from GnuTLS public key.

**Parameters:**

- `pubkey` — the pointer to GnuTLS public key.


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

---

### `xmlSecGnuTLSAsymmetricKeyCreatePriv`

```c
xmlSecKeyPtr xmlSecGnuTLSAsymmetricKeyCreatePriv(gnutls_privkey_t privkey);
```

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

Creates XMLSec key from GnuTLS private key.

**Parameters:**

- `privkey` — the pointer to GnuTLS private key.


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

---

### `xmlSecGnuTLSAsymmetricKeyGetPub`

```c
gnutls_pubkey_t xmlSecGnuTLSAsymmetricKeyGetPub(xmlSecKeyPtr key);
```

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

Gets GnuTLS public key from an XMLSec `key`.

**Parameters:**

- `key` — the pointer to XMLSec key.


**Returns:** GnuTLS public key on success or a NULL value otherwise.

---

### `xmlSecGnuTLSAsymmetricKeyGetPriv`

```c
gnutls_privkey_t xmlSecGnuTLSAsymmetricKeyGetPriv(xmlSecKeyPtr key);
```

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

Gets GnuTLS private key from an XMLSec `key`.

**Parameters:**

- `key` — the pointer to XMLSec key.


**Returns:** GnuTLS private key on success or a NULL value otherwise.

---

### `xmlSecGCryptAsymetricKeyCreatePub`

```c
xmlSecKeyPtr xmlSecGCryptAsymetricKeyCreatePub(gnutls_pubkey_t pubkey);
```

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

Creates XMLSec key from GnuTLS public key `pubkey` (deprecated).

**Returns:** pointer to created key or NULL on error.
Creates XMLSec key from GnuTLS public key `pubkey` (deprecated).

Creates XMLSec key from GnuTLS public key (deprecated, use `xmlSecGnuTLSAsymmetricKeyCreatePub()` instead). 

**Parameters:**

- `pubkey` — the pointer to GnuTLS public key.


**Returns:** pointer to newly created key or NULL if an error occurs.

---

### `xmlSecGCryptAsymetricKeyCreatePriv`

```c
xmlSecKeyPtr xmlSecGCryptAsymetricKeyCreatePriv(gnutls_privkey_t privkey);
```

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

Creates XMLSec key from GnuTLS private key `privkey` (deprecated).

**Returns:** pointer to created key or NULL on error.
Creates XMLSec key from GnuTLS private key `privkey` (deprecated).

Creates XMLSec key from GnuTLS private key (deprecated, use `xmlSecGnuTLSAsymmetricKeyCreatePriv()` instead). 

**Parameters:**

- `privkey` — the pointer to GnuTLS private key.


**Returns:** pointer to newly created key or NULL if an error occurs.

---

### `xmlSecGCryptAsymetricKeyGetPub`

```c
gnutls_pubkey_t xmlSecGCryptAsymetricKeyGetPub(xmlSecKeyPtr key);
```

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

Gets GnuTLS public key from XMLSec `key` (deprecated).

**Returns:** GnuTLS public key or NULL on error.
Gets GnuTLS public key from XMLSec `key` (deprecated).

Gets GnuTLS public key from an XMLSec `key` (deprecated, use `xmlSecGnuTLSAsymmetricKeyGetPub()` instead). 

**Parameters:**

- `key` — the pointer to XMLSec key.


**Returns:** GnuTLS public key on success or a NULL value otherwise.

---

### `xmlSecGCryptAsymetricKeyGetPriv`

```c
gnutls_privkey_t xmlSecGCryptAsymetricKeyGetPriv(xmlSecKeyPtr key);
```

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

Gets GnuTLS private key from XMLSec `key` (deprecated).

**Returns:** GnuTLS private key or NULL on error.
Gets GnuTLS private key from XMLSec `key` (deprecated).

Gets GnuTLS private key from an XMLSec `key` (deprecated, use `xmlSecGnuTLSAsymmetricKeyGetPriv()` instead). 

**Parameters:**

- `key` — the pointer to XMLSec key.


**Returns:** GnuTLS private key on success or a NULL value otherwise.

---

### `xmlSecGnuTLSKeyDataAesGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataAesGetKlass(void);
```

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

The AES key data klass.

**Returns:** AES key data klass.

---

### `xmlSecGnuTLSKeyDataAesSet`

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

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

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.

---

### `xmlSecGnuTLSTransformAes128CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformAes128CbcGetKlass(void);
```

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

AES 128 CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformAes192CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformAes192CbcGetKlass(void);
```

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

AES 192 CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformAes256CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformAes256CbcGetKlass(void);
```

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

AES 256 CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformAes128GcmGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformAes128GcmGetKlass(void);
```

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

AES 128 GCM encryption transform klass.

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

---

### `xmlSecGnuTLSTransformAes192GcmGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformAes192GcmGetKlass(void);
```

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

AES 192 GCM encryption transform klass.

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

---

### `xmlSecGnuTLSTransformAes256GcmGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformAes256GcmGetKlass(void);
```

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

AES 256 GCM encryption transform klass.

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

---

### `xmlSecGnuTLSTransformKWAes128GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWAes128GetKlass(void);
```

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

The AES-128 key wrapper transform klass.

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

---

### `xmlSecGnuTLSTransformKWAes192GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWAes192GetKlass(void);
```

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

The AES-192 key wrapper transform klass.

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

---

### `xmlSecGnuTLSTransformKWAes256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWAes256GetKlass(void);
```

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

The AES-256 key wrapper transform klass.

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

---

### `xmlSecGnuTLSKeyDataChaCha20GetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataChaCha20GetKlass(void);
```

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

The ChaCha20 key data klass.

**Returns:** ChaCha20 key data klass.

---

### `xmlSecGnuTLSKeyDataChaCha20Set`

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

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

Sets the value of ChaCha20 key data.

**Parameters:**

- `data` — the pointer to ChaCha20 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.

---

### `xmlSecGnuTLSTransformChaCha20GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformChaCha20GetKlass(void);
```

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

ChaCha20 stream cipher transform.

**Returns:** pointer to ChaCha20 transform.

---

### `xmlSecGnuTLSTransformChaCha20Poly1305GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformChaCha20Poly1305GetKlass(void);
```

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

ChaCha20-Poly1305 AEAD encryption transform klass.

**Returns:** pointer to ChaCha20-Poly1305 encryption transform.

---

### `xmlSecGnuTLSKeyDataDesGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataDesGetKlass(void);
```

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

The DES key data klass.

**Returns:** DES key data klass.

---

### `xmlSecGnuTLSKeyDataDesSet`

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

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

Sets the value of DES key data.

**Parameters:**

- `data` — the pointer to DES 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.

---

### `xmlSecGnuTLSTransformDes3CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformDes3CbcGetKlass(void);
```

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

Triple DES CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformKWDes3GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWDes3GetKlass(void);
```

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

The Triple DES key wrapper transform klass.

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

---

### `xmlSecGnuTLSKeyDataCamelliaGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataCamelliaGetKlass(void);
```

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

The Camellia key data klass.

**Returns:** Camellia key data klass.

---

### `xmlSecGnuTLSKeyDataCamelliaSet`

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

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

Sets the value of Camellia key data.

**Parameters:**

- `data` — the pointer to Camellia 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.

---

### `xmlSecGnuTLSTransformCamellia128CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformCamellia128CbcGetKlass(void);
```

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

Camellia 128 CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformCamellia192CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformCamellia192CbcGetKlass(void);
```

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

Camellia 192 CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformCamellia256CbcGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformCamellia256CbcGetKlass(void);
```

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

Camellia 256 CBC encryption transform klass.

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

---

### `xmlSecGnuTLSTransformKWCamellia128GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWCamellia128GetKlass(void);
```

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

The Camellia-128 key wrapper transform klass.

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

---

### `xmlSecGnuTLSTransformKWCamellia192GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWCamellia192GetKlass(void);
```

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

The Camellia-192 key wrapper transform klass.

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

---

### `xmlSecGnuTLSTransformKWCamellia256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformKWCamellia256GetKlass(void);
```

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

The Camellia-256 key wrapper transform klass.

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

---

### `xmlSecGnuTLSKeyDataDsaGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataDsaGetKlass(void);
```

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

The DSA key data klass.

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

---

### `xmlSecGnuTLSKeyDataDsaAdoptKey`

```c
int xmlSecGnuTLSKeyDataDsaAdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of DSA key data.

Sets the value of DSA key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to DSA key data.
- `pubkey` — the pointer to GnuTLS DSA key.
- `privkey` — the pointer to GnuTLS DSA key.


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

---

### `xmlSecGnuTLSKeyDataDsaGetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataDsaGetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS DSA public key from DSA key data.

**Parameters:**

- `data` — the pointer to DSA key data.


**Returns:** pointer to GnuTLS public DSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataDsaGetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataDsaGetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS DSA private key from DSA key data.

**Parameters:**

- `data` — the pointer to DSA key data.


**Returns:** pointer to GnuTLS private DSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformDsaSha1GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformDsaSha1GetKlass(void);
```

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

The DSA-SHA1 signature transform klass.

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

---

### `xmlSecGnuTLSTransformDsaSha256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformDsaSha256GetKlass(void);
```

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

The DSA-SHA2-256 signature transform klass.

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

---

### `xmlSecGnuTLSKeyDataEcGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataEcGetKlass(void);
```

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

The GnuTLS EC key data klass.

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

---

### `xmlSecGnuTLSKeyDataEcAdoptKey`

```c
int xmlSecGnuTLSKeyDataEcAdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of EC key data.

Sets the value of EC key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to EC key data.
- `pubkey` — the pointer to GnuTLS EC key.
- `privkey` — the pointer to GnuTLS EC key.


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

---

### `xmlSecGnuTLSKeyDataEcGetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataEcGetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS EC public key from EC key data.

**Parameters:**

- `data` — the pointer to EC key data.


**Returns:** pointer to GnuTLS public EC key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataEcGetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataEcGetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS EC private key from EC key data.

**Parameters:**

- `data` — the pointer to EC key data.


**Returns:** pointer to GnuTLS private EC key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformEcdsaSha1GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha1GetKlass(void);
```

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

The ECDSA-SHA1 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha224GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha224GetKlass(void);
```

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

The ECDSA-SHA2-224 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha256GetKlass(void);
```

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

The ECDSA-SHA2-256 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha384GetKlass(void);
```

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

The ECDSA-SHA2-384 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha512GetKlass(void);
```

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

The ECDSA-SHA2-512 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha3_224GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha3_224GetKlass(void);
```

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

The ECDSA-SHA3-224 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha3_256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha3_256GetKlass(void);
```

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

The ECDSA-SHA3-256 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha3_384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha3_384GetKlass(void);
```

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

The ECDSA-SHA3-384 signature transform klass.

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

---

### `xmlSecGnuTLSTransformEcdsaSha3_512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdsaSha3_512GetKlass(void);
```

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

The ECDSA-SHA3-512 signature transform klass.

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

---

### `xmlSecGnuTLSKeyDataGost2001GetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataGost2001GetKlass(void);
```

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

The GnuTLS GOST 2001 key data klass.

**Returns:** pointer to GnuTLS GOST 2001 key data klass.

---

### `xmlSecGnuTLSKeyDataGost2001AdoptKey`

```c
int xmlSecGnuTLSKeyDataGost2001AdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of GOST 2001 key data.

Sets the value of GOST 2001 key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to GOST 2001 key data.
- `pubkey` — the pointer to GnuTLS GOST 2001 key.
- `privkey` — the pointer to GnuTLS GOST 2001 key.


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

---

### `xmlSecGnuTLSKeyDataGost2001GetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataGost2001GetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GOST 2001 public key from key data.

Gets the GnuTLS GOST 2001 public key from GOST 2001 key data. 

**Parameters:**

- `data` — the pointer to GOST 2001 key data.


**Returns:** pointer to GnuTLS public GOST 2001 key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataGost2001GetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataGost2001GetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GOST 2001 private key from key data.

Gets the GnuTLS GOST 2001 private key from GOST 2001 key data. 

**Parameters:**

- `data` — the pointer to GOST 2001 key data.


**Returns:** pointer to GnuTLS private GOST 2001 key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformGostR3411_94GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformGostR3411_94GetKlass(void);
```

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

GOSTR3411_94 digest transform klass.

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

---

### `xmlSecGnuTLSTransformGost2001GostR3411_94GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformGost2001GostR3411_94GetKlass(void);
```

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

GOST2001 GOSTR3411_94 signature transform klass.

The GOST2001 GOSTR3411_94 signature transform klass. 

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

---

### `xmlSecGnuTLSKeyDataGost2012_256GetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataGost2012_256GetKlass(void);
```

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

The GnuTLS GOST 2012 (256 bits) key data klass.

**Returns:** pointer to GnuTLS GOST 2012 (256 bits) key data klass.

---

### `xmlSecGnuTLSKeyDataGost2012_256AdoptKey`

```c
int xmlSecGnuTLSKeyDataGost2012_256AdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of GOST 2012 (256 bits) key data.

Sets the value of GOST 2012 (256 bits) key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to GOST 2012 (256 bits) key data.
- `pubkey` — the pointer to GnuTLS GOST 2012 (256 bits) key.
- `privkey` — the pointer to GnuTLS GOST 2012 (256 bits) key.


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

---

### `xmlSecGnuTLSKeyDataGost2012_256GetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataGost2012_256GetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GOST 2012 (256 bits) public key.

Gets the GnuTLS GOST 2012 (256 bits) public key from GOST 2012 (256 bits) key data. 

**Parameters:**

- `data` — the pointer to GOST 2012 (256 bits) key data.


**Returns:** pointer to GnuTLS public GOST 2012 (256 bits) key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataGost2012_256GetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataGost2012_256GetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GOST 2012 (256 bits) private key.

Gets the GnuTLS GOST 2012 (256 bits) private key from GOST 2012 (256 bits) key data. 

**Parameters:**

- `data` — the pointer to GOST 2012 (256 bits) key data.


**Returns:** pointer to GnuTLS private GOST 2012 (256 bits) key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataGost2012_512GetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataGost2012_512GetKlass(void);
```

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

The GnuTLS GOST 2012 (512 bits) key data klass.

**Returns:** pointer to GnuTLS GOST 2012 (512 bits) key data klass.

---

### `xmlSecGnuTLSKeyDataGost2012_512AdoptKey`

```c
int xmlSecGnuTLSKeyDataGost2012_512AdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of GOST 2012 (512 bits) key data.

Sets the value of GOST 2012 (512 bits) key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to GOST 2012 (512 bits) key data.
- `pubkey` — the pointer to GnuTLS GOST 2012 (512 bits) key.
- `privkey` — the pointer to GnuTLS GOST 2012 (512 bits) key.


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

---

### `xmlSecGnuTLSKeyDataGost2012_512GetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataGost2012_512GetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GOST 2012 (512 bits) public key.

Gets the GnuTLS GOST 2012 (512 bits) public key from GOST 2012 (512 bits) key data. 

**Parameters:**

- `data` — the pointer to GOST 2012 (512 bits) key data.


**Returns:** pointer to GnuTLS public GOST 2012 (512 bits) key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataGost2012_512GetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataGost2012_512GetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GOST 2012 (512 bits) private key.

Gets the GnuTLS GOST 2012 (512 bits) private key from GOST 2012 (512 bits) key data. 

**Parameters:**

- `data` — the pointer to GOST 2012 (512 bits) key data.


**Returns:** pointer to GnuTLS private GOST 2012 (512 bits) key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformGostR3411_2012_256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformGostR3411_2012_256GetKlass(void);
```

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

GOST R 34.11-2012 256 bit digest transform klass.

**Returns:** pointer to GOST R 34.11-2012 256 bit digest transform klass.

---

### `xmlSecGnuTLSTransformGostR3411_2012_512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformGostR3411_2012_512GetKlass(void);
```

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

GOST R 34.11-2012 512 bit digest transform klass.

**Returns:** pointer to GOST R 34.11-2012 512 bit digest transform klass.

---

### `xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_256GetKlass(void);
```

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

GOST R 34.10-2012 signature klass (256 bit).

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

**Returns:** GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.

---

### `xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformGostR3410_2012GostR3411_2012_512GetKlass(void);
```

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

GOST R 34.10-2012 signature klass (512 bit).

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

**Returns:** GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.

---

### `xmlSecGnuTLSKeyDataMLDSAGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataMLDSAGetKlass(void);
```

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

The GnuTLS ML-DSA key data klass.

**Returns:** pointer to GnuTLS ML-DSA key data klass.

---

### `xmlSecGnuTLSKeyDataMLDSAAdoptKey`

```c
int xmlSecGnuTLSKeyDataMLDSAAdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of ML-DSA key data.

Sets the value of ML-DSA key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to ML-DSA key data.
- `pubkey` — the pointer to GnuTLS ML-DSA key.
- `privkey` — the pointer to GnuTLS ML-DSA key.


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

---

### `xmlSecGnuTLSKeyDataMLDSAGetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataMLDSAGetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS ML-DSA public key.

Gets the GnuTLS ML-DSA public key from ML-DSA key data. 

**Parameters:**

- `data` — the pointer to ML-DSA key data.


**Returns:** pointer to GnuTLS public ML-DSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataMLDSAGetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataMLDSAGetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS ML-DSA private key.

Gets the GnuTLS ML-DSA private key from ML-DSA key data. 

**Parameters:**

- `data` — the pointer to ML-DSA key data.


**Returns:** pointer to GnuTLS private ML-DSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataMLDSAGetKL`

```c
int xmlSecGnuTLSKeyDataMLDSAGetKL(xmlSecKeyDataPtr data);
```

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

Gets ML-DSA key (k, l) value: 44 corresponds to (4,4),.

**Parameters:**

- `data` — the pointer to ML-DSA key data.
65 to (6,5) or 87 to (8,7).

**Returns:** 44, 65, or 87 on success or a negative value otherwise.

---

### `xmlSecGnuTLSTransformMLDSA44GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformMLDSA44GetKlass(void);
```

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

The ML-DSA-44 signature transform klass.

**Returns:** ML-DSA-44 signature transform klass.

---

### `xmlSecGnuTLSTransformMLDSA65GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformMLDSA65GetKlass(void);
```

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

The ML-DSA-65 signature transform klass.

**Returns:** ML-DSA-65 signature transform klass.

---

### `xmlSecGnuTLSTransformMLDSA87GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformMLDSA87GetKlass(void);
```

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

The ML-DSA-87 signature transform klass.

**Returns:** ML-DSA-87 signature transform klass.

---

### `xmlSecGnuTLSKeyDataEdDSAGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataEdDSAGetKlass(void);
```

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

The GnuTLS EdDSA key data klass.

**Returns:** pointer to GnuTLS EdDSA key data klass.

---

### `xmlSecGnuTLSKeyDataEdDSAAdoptKey`

```c
int xmlSecGnuTLSKeyDataEdDSAAdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of EdDSA key data.

Sets the value of EdDSA key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to EdDSA key data.
- `pubkey` — the pointer to GnuTLS EdDSA public key.
- `privkey` — the pointer to GnuTLS EdDSA private key.


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

---

### `xmlSecGnuTLSKeyDataEdDSAGetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataEdDSAGetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS EdDSA public key.

Gets the GnuTLS EdDSA public key from EdDSA key data. 

**Parameters:**

- `data` — the pointer to EdDSA key data.


**Returns:** pointer to GnuTLS public EdDSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataEdDSAGetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataEdDSAGetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS EdDSA private key.

Gets the GnuTLS EdDSA private key from EdDSA key data. 

**Parameters:**

- `data` — the pointer to EdDSA key data.


**Returns:** pointer to GnuTLS private EdDSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformEdDSAEd25519GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEdDSAEd25519GetKlass(void);
```

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

The EdDSA-Ed25519 signature transform klass.

**Returns:** EdDSA-Ed25519 signature transform klass.

---

### `xmlSecGnuTLSTransformEdDSAEd448GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEdDSAEd448GetKlass(void);
```

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

The EdDSA-Ed448 signature transform klass.

**Returns:** EdDSA-Ed448 signature transform klass.

---

### `xmlSecGnuTLSKeyDataXdhGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataXdhGetKlass(void);
```

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

The GnuTLS XDH key data klass (X25519 and X448).

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

---

### `xmlSecGnuTLSKeyDataXdhAdoptKey`

```c
int xmlSecGnuTLSKeyDataXdhAdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of XDH key data.

Sets the value of XDH key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to XDH key data.
- `pubkey` — the pointer to GnuTLS XDH public key.
- `privkey` — the pointer to GnuTLS XDH private key.


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

---

### `xmlSecGnuTLSKeyDataXdhGetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataXdhGetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS XDH public key from XDH key data.

**Parameters:**

- `data` — the pointer to XDH key data.


**Returns:** pointer to GnuTLS public XDH key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataXdhGetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataXdhGetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS XDH private key from XDH key data.

**Parameters:**

- `data` — the pointer to XDH key data.


**Returns:** pointer to GnuTLS private XDH key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformX25519GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformX25519GetKlass(void);
```

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

The X25519 key agreement transform klass.

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

---

### `xmlSecGnuTLSTransformX448GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformX448GetKlass(void);
```

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

The X448 key agreement transform klass.

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

---

### `xmlSecGnuTLSTransformEcdhGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformEcdhGetKlass(void);
```

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

The ECDH-ES key agreement transform klass.

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

---

### `xmlSecGnuTLSKeyDataConcatKdfGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataConcatKdfGetKlass(void);
```

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

The ConcatKDF key data klass.

**Returns:** ConcatKDF key data klass.

---

### `xmlSecGnuTLSKeyDataConcatKdfSet`

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

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

Sets the value of ConcatKDF key data.

**Parameters:**

- `data` — the pointer to ConcatKDF 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.

---

### `xmlSecGnuTLSTransformConcatKdfGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformConcatKdfGetKlass(void);
```

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

The ConcatKDF key derivation transform klass.

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

---

### `xmlSecGnuTLSKeyDataHmacGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataHmacGetKlass(void);
```

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

The HMAC key data klass.

**Returns:** HMAC key data klass.

---

### `xmlSecGnuTLSKeyDataHmacSet`

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

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

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.

---

### `xmlSecGnuTLSTransformHmacSha1GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformHmacSha1GetKlass(void);
```

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

The HMAC-SHA1 transform klass.

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

---

### `xmlSecGnuTLSTransformHmacSha224GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformHmacSha224GetKlass(void);
```

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

The HMAC-SHA224 transform klass.

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

---

### `xmlSecGnuTLSTransformHmacSha256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformHmacSha256GetKlass(void);
```

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

The HMAC-SHA256 transform klass.

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

---

### `xmlSecGnuTLSTransformHmacSha384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformHmacSha384GetKlass(void);
```

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

The HMAC-SHA384 transform klass.

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

---

### `xmlSecGnuTLSTransformHmacSha512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformHmacSha512GetKlass(void);
```

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

The HMAC-SHA512 transform klass.

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

---

### `xmlSecGnuTLSKeyDataPbkdf2GetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataPbkdf2GetKlass(void);
```

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

The PBKDF2 key data klass.

**Returns:** PBKDF2 key data klass.

---

### `xmlSecGnuTLSKeyDataPbkdf2Set`

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

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

Sets the value of PBKDF2 key data.

**Parameters:**

- `data` — the pointer to PBKDF2 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.

---

### `xmlSecGnuTLSTransformPbkdf2GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformPbkdf2GetKlass(void);
```

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

The PBKDF2 key derivation transform klass.

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

---

### `xmlSecGnuTLSKeyDataHkdfGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataHkdfGetKlass(void);
```

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

The HKDF key data klass.

**Returns:** HKDF key data klass.

---

### `xmlSecGnuTLSKeyDataHkdfSet`

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

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

Sets the value of HKDF key data.

**Parameters:**

- `data` — the pointer to HKDF 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.

---

### `xmlSecGnuTLSTransformHkdfGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformHkdfGetKlass(void);
```

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

The HKDF key derivation transform klass.

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

---

### `xmlSecGnuTLSKeyDataRsaGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataRsaGetKlass(void);
```

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

The RSA key data klass.

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

---

### `xmlSecGnuTLSKeyDataRsaAdoptKey`

```c
int xmlSecGnuTLSKeyDataRsaAdoptKey(xmlSecKeyDataPtr data, gnutls_pubkey_t pubkey, gnutls_privkey_t privkey);
```

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

Sets the value of RSA key data.

Sets the value of RSA key data. The `pubkey` and `privkey` will be owned by the `data` on success. 

**Parameters:**

- `data` — the pointer to RSA key data.
- `pubkey` — the pointer to GnuTLS RSA key.
- `privkey` — the pointer to GnuTLS RSA key.


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

---

### `xmlSecGnuTLSKeyDataRsaGetPublicKey`

```c
gnutls_pubkey_t xmlSecGnuTLSKeyDataRsaGetPublicKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS RSA public key from RSA key data.

**Parameters:**

- `data` — the pointer to RSA key data.


**Returns:** pointer to GnuTLS public RSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSKeyDataRsaGetPrivateKey`

```c
gnutls_privkey_t xmlSecGnuTLSKeyDataRsaGetPrivateKey(xmlSecKeyDataPtr data);
```

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

Gets the GnuTLS RSA private key from RSA key data.

**Parameters:**

- `data` — the pointer to RSA key data.


**Returns:** pointer to GnuTLS private RSA key or NULL if an error occurs.

---

### `xmlSecGnuTLSTransformRsaSha1GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaSha1GetKlass(void);
```

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

The RSA-SHA1 signature transform klass.

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

---

### `xmlSecGnuTLSTransformRsaSha224GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaSha224GetKlass(void);
```

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

The RSA-SHA2-224 signature transform klass.

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

---

### `xmlSecGnuTLSTransformRsaSha256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaSha256GetKlass(void);
```

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

The RSA-SHA2-256 signature transform klass.

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

---

### `xmlSecGnuTLSTransformRsaSha384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaSha384GetKlass(void);
```

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

The RSA-SHA2-384 signature transform klass.

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

---

### `xmlSecGnuTLSTransformRsaSha512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaSha512GetKlass(void);
```

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

The RSA-SHA2-512 signature transform klass.

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

---

### `xmlSecGnuTLSTransformRsaPssSha256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaPssSha256GetKlass(void);
```

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

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

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

---

### `xmlSecGnuTLSTransformRsaPssSha384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaPssSha384GetKlass(void);
```

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

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

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

---

### `xmlSecGnuTLSTransformRsaPssSha512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaPssSha512GetKlass(void);
```

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

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

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

---

### `xmlSecGnuTLSTransformRsaPkcs1GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaPkcs1GetKlass(void);
```

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

The RSA-PKCS1 key transport transform klass.

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

---

### `xmlSecGnuTLSTransformRsaOaepGetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaOaepGetKlass(void);
```

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

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.

---

### `xmlSecGnuTLSTransformRsaOaepEnc11GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformRsaOaepEnc11GetKlass(void);
```

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

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.

---

### `xmlSecGnuTLSTransformSha1GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha1GetKlass(void);
```

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

SHA-1 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha224GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha224GetKlass(void);
```

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

SHA2-224 digest transform klass.

**Returns:** pointer to SHA2-224 digest transform klass.

---

### `xmlSecGnuTLSTransformSha256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha256GetKlass(void);
```

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

SHA2-256 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha384GetKlass(void);
```

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

SHA2-384 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha512GetKlass(void);
```

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

SHA2-512 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha3_224GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha3_224GetKlass(void);
```

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

SHA3-224 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha3_256GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha3_256GetKlass(void);
```

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

SHA3-256 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha3_384GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha3_384GetKlass(void);
```

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

SHA3-384 digest transform klass.

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

---

### `xmlSecGnuTLSTransformSha3_512GetKlass`

```c
xmlSecTransformId xmlSecGnuTLSTransformSha3_512GetKlass(void);
```

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

SHA3-512 digest transform klass.

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

---

### `xmlSecGnuTLSKeyDataDEREncodedKeyValueGetKlass`

```c
xmlSecKeyDataId xmlSecGnuTLSKeyDataDEREncodedKeyValueGetKlass(void);
```

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

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.

---
