# NSS Crypto Engine

**API Group:** `xmlsec_nss_crypto`

Cryptographic operations provided by the NSS back-end.

Symmetric keys implementation for NSS.

Signatures implementation for NSS.

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

DES Key Transport transforms implementation for NSS.

RSA Key Transport transforms implementation for NSS.

Key agreement transforms implementation for NSS.

KDF (key derivation) transforms implementation for NSS.

HMAC transforms implementation for NSS.

Digests transforms implementation for NSS.

DEREncodedKeyValue processing for NSS.

Crypto key dat and transforms implementation for NSS. Implementation of keys and tranforms for NSS.

Ciphers transforms implementation for NSS.

Ciphers AEAD transforms implementation for NSS.

## Macros

### `xmlSecNssKeyDataAesId`

*Defined as:* `xmlSecNssKeyDataAesGetKlass()`

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

The AES key data klass.

---

### `xmlSecNssTransformAes128CbcId`

*Defined as:* `xmlSecNssTransformAes128CbcGetKlass()`

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

The AES128 CBC cipher transform klass.

---

### `xmlSecNssTransformAes192CbcId`

*Defined as:* `xmlSecNssTransformAes192CbcGetKlass()`

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

The AES192 CBC cipher transform klass.

---

### `xmlSecNssTransformAes256CbcId`

*Defined as:* `xmlSecNssTransformAes256CbcGetKlass()`

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

The AES256 CBC cipher transform klass.

---

### `xmlSecNssTransformAes128GcmId`

*Defined as:* `xmlSecNssTransformAes128GcmGetKlass()`

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

The AES128 GCM cipher transform klass.

---

### `xmlSecNssTransformAes192GcmId`

*Defined as:* `xmlSecNssTransformAes192GcmGetKlass()`

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

The AES192 GCM cipher transform klass.

---

### `xmlSecNssTransformAes256GcmId`

*Defined as:* `xmlSecNssTransformAes256GcmGetKlass()`

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

The AES256 GCM cipher transform klass.

---

### `xmlSecNssTransformKWAes128Id`

*Defined as:* `xmlSecNssTransformKWAes128GetKlass()`

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

The AES 128 key wrap transform klass.

---

### `xmlSecNssTransformKWAes192Id`

*Defined as:* `xmlSecNssTransformKWAes192GetKlass()`

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

The AES 192 key wrap transform klass.

---

### `xmlSecNssTransformKWAes256Id`

*Defined as:* `xmlSecNssTransformKWAes256GetKlass()`

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

The AES 256 key wrap transform klass.

---

### `xmlSecNssKeyDataCamelliaId`

*Defined as:* `xmlSecNssKeyDataCamelliaGetKlass()`

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

The Camellia key data klass.

---

### `xmlSecNssTransformCamellia128CbcId`

*Defined as:* `xmlSecNssTransformCamellia128CbcGetKlass()`

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

The Camellia128 CBC cipher transform klass.

---

### `xmlSecNssTransformCamellia192CbcId`

*Defined as:* `xmlSecNssTransformCamellia192CbcGetKlass()`

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

The Camellia192 CBC cipher transform klass.

---

### `xmlSecNssTransformCamellia256CbcId`

*Defined as:* `xmlSecNssTransformCamellia256CbcGetKlass()`

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

The Camellia256 CBC cipher transform klass.

---

### `xmlSecNssTransformKWCamellia128Id`

*Defined as:* `xmlSecNssTransformKWCamellia128GetKlass()`

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

The Camellia 128 key wrap transform klass.

---

### `xmlSecNssTransformKWCamellia192Id`

*Defined as:* `xmlSecNssTransformKWCamellia192GetKlass()`

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

The Camellia 192 key wrap transform klass.

---

### `xmlSecNssTransformKWCamellia256Id`

*Defined as:* `xmlSecNssTransformKWCamellia256GetKlass()`

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

The Camellia 256 key wrap transform klass.

---

### `xmlSecNssKeyDataDesId`

*Defined as:* `xmlSecNssKeyDataDesGetKlass()`

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

The DES key data klass.

---

### `xmlSecNssTransformDes3CbcId`

*Defined as:* `xmlSecNssTransformDes3CbcGetKlass()`

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

The Triple DES CBC cipher transform klass.

---

### `xmlSecNssTransformKWDes3Id`

*Defined as:* `xmlSecNssTransformKWDes3GetKlass()`

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

The DES3 KW transform klass.

---

### `xmlSecNssKeyDataChaCha20Id`

*Defined as:* `xmlSecNssKeyDataChaCha20GetKlass()`

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

The ChaCha20 key data klass.

---

### `xmlSecNssTransformChaCha20Poly1305Id`

*Defined as:* `xmlSecNssTransformChaCha20Poly1305GetKlass()`

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

The ChaCha20-Poly1305 AEAD transform klass.

---

### `xmlSecNssKeyDataDsaId`

*Defined as:* `xmlSecNssKeyDataDsaGetKlass()`

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

The DSA key klass.

---

### `xmlSecNssTransformDsaSha1Id`

*Defined as:* `xmlSecNssTransformDsaSha1GetKlass()`

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

The DSA SHA1 signature transform klass.

---

### `xmlSecNssTransformDsaSha256Id`

*Defined as:* `xmlSecNssTransformDsaSha256GetKlass()`

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

The DSA SHA2-256 signature transform klass.

---

### `xmlSecNssKeyDataEcId`

*Defined as:* `xmlSecNsskeyDataEcGetKlass()`

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

The EC key klass.

---

### `xmlSecNssTransformEcdhId`

*Defined as:* `xmlSecNssTransformEcdhGetKlass()`

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

The ECDH key agreement transform klass.

---

### `xmlSecNssTransformEcdsaSha1Id`

*Defined as:* `xmlSecNssTransformEcdsaSha1GetKlass()`

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

The ECDSA SHA1 signature transform klass.

---

### `xmlSecNssTransformEcdsaSha224Id`

*Defined as:* `xmlSecNssTransformEcdsaSha224GetKlass()`

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

The ECDSA SHA2-224 signature transform klass.

---

### `xmlSecNssTransformEcdsaSha256Id`

*Defined as:* `xmlSecNssTransformEcdsaSha256GetKlass()`

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

The ECDSA SHA2-256 signature transform klass.

---

### `xmlSecNssTransformEcdsaSha384Id`

*Defined as:* `xmlSecNssTransformEcdsaSha384GetKlass()`

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

The ECDSA SHA2-384 signature transform klass.

---

### `xmlSecNssTransformEcdsaSha512Id`

*Defined as:* `xmlSecNssTransformEcdsaSha512GetKlass()`

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

The ECDSA SHA2-512 signature transform klass.

---

### `xmlSecNssKeyDataEdDSAId`

*Defined as:* `xmlSecNssKeyDataEdDSAGetKlass()`

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

The EdDSA key klass (Ed25519 and Ed448).

---

### `xmlSecNssTransformEdDSAEd25519Id`

*Defined as:* `xmlSecNssTransformEdDSAEd25519GetKlass()`

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

The EdDSA-Ed25519 signature transform klass.

---

### `xmlSecNssKeyDataXdhId`

*Defined as:* `xmlSecNssKeyDataXdhGetKlass()`

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

The XDH key klass (X25519 and X448).

---

### `xmlSecNssTransformX25519Id`

*Defined as:* `xmlSecNssTransformX25519GetKlass()`

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

The X25519 key agreement transform klass.

---

### `xmlSecNssKeyDataHmacId`

*Defined as:* `xmlSecNssKeyDataHmacGetKlass()`

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

The HMAC key data klass.

---

### `xmlSecNssTransformHmacMd5Id`

*Defined as:* `xmlSecNssTransformHmacMd5GetKlass()`

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

The HMAC with MD5 signature transform klass.

---

### `xmlSecNssTransformHmacRipemd160Id`

*Defined as:* `xmlSecNssTransformHmacRipemd160GetKlass()`

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

The HMAC with RipeMD160 signature transform klass.

---

### `xmlSecNssTransformHmacSha1Id`

*Defined as:* `xmlSecNssTransformHmacSha1GetKlass()`

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

The HMAC with SHA1 signature transform klass.

---

### `xmlSecNssTransformHmacSha224Id`

*Defined as:* `xmlSecNssTransformHmacSha224GetKlass()`

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

The HMAC with SHA2-224 signature transform klass.

---

### `xmlSecNssTransformHmacSha256Id`

*Defined as:* `xmlSecNssTransformHmacSha256GetKlass()`

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

The HMAC with SHA2-256 signature transform klass.

---

### `xmlSecNssTransformHmacSha384Id`

*Defined as:* `xmlSecNssTransformHmacSha384GetKlass()`

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

The HMAC with SHA2-384 signature transform klass.

---

### `xmlSecNssTransformHmacSha512Id`

*Defined as:* `xmlSecNssTransformHmacSha512GetKlass()`

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

The HMAC with SHA2-512 signature transform klass.

---

### `xmlSecNssKeyDataPbkdf2Id`

*Defined as:* `xmlSecNssKeyDataPbkdf2GetKlass()`

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

The PBKDF2 key data klass.

---

### `xmlSecNssTransformPbkdf2Id`

*Defined as:* `xmlSecNssTransformPbkdf2GetKlass()`

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

The PBKDF2 key derivation transform klass.

---

### `xmlSecNssKeyDataConcatKdfId`

*Defined as:* `xmlSecNssKeyDataConcatKdfGetKlass()`

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

The ConcatKDF key data klass.

---

### `xmlSecNssTransformConcatKdfId`

*Defined as:* `xmlSecNssTransformConcatKdfGetKlass()`

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

The ConcatKDF key derivation transform klass.

---

### `xmlSecNssKeyDataHkdfId`

*Defined as:* `xmlSecNssKeyDataHkdfGetKlass()`

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

The HKDF key data klass.

---

### `xmlSecNssTransformHkdfId`

*Defined as:* `xmlSecNssTransformHkdfGetKlass()`

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

The HKDF key derivation transform klass.

---

### `xmlSecNssKeyDataRsaId`

*Defined as:* `xmlSecNssKeyDataRsaGetKlass()`

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

The RSA key klass.

---

### `xmlSecNssTransformRsaMd5Id`

*Defined as:* `xmlSecNssTransformRsaMd5GetKlass()`

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

The RSA-MD5 signature transform klass.

---

### `xmlSecNssTransformRsaSha1Id`

*Defined as:* `xmlSecNssTransformRsaSha1GetKlass()`

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

The RSA-SHA1 signature transform klass.

---

### `xmlSecNssTransformRsaSha224Id`

*Defined as:* `xmlSecNssTransformRsaSha224GetKlass()`

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

The RSA-SHA2-224 signature transform klass.

---

### `xmlSecNssTransformRsaSha256Id`

*Defined as:* `xmlSecNssTransformRsaSha256GetKlass()`

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

The RSA-SHA2-256 signature transform klass.

---

### `xmlSecNssTransformRsaSha384Id`

*Defined as:* `xmlSecNssTransformRsaSha384GetKlass()`

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

The RSA-SHA2-384 signature transform klass.

---

### `xmlSecNssTransformRsaSha512Id`

*Defined as:* `xmlSecNssTransformRsaSha512GetKlass()`

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

The RSA-SHA2-512 signature transform klass.

---

### `xmlSecNssTransformRsaPssSha1Id`

*Defined as:* `xmlSecNssTransformRsaPssSha1GetKlass()`

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

The RSA-PSS-SHA1 signature transform klass.

---

### `xmlSecNssTransformRsaPssSha224Id`

*Defined as:* `xmlSecNssTransformRsaPssSha224GetKlass()`

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

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

---

### `xmlSecNssTransformRsaPssSha256Id`

*Defined as:* `xmlSecNssTransformRsaPssSha256GetKlass()`

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

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

---

### `xmlSecNssTransformRsaPssSha384Id`

*Defined as:* `xmlSecNssTransformRsaPssSha384GetKlass()`

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

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

---

### `xmlSecNssTransformRsaPssSha512Id`

*Defined as:* `xmlSecNssTransformRsaPssSha512GetKlass()`

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

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

---

### `xmlSecNssTransformRsaPkcs1Id`

*Defined as:* `xmlSecNssTransformRsaPkcs1GetKlass()`

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

The RSA PKCS1 key transport transform klass.

---

### `xmlSecNssTransformRsaOaepId`

*Defined as:* `xmlSecNssTransformRsaOaepGetKlass()`

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

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

---

### `xmlSecNssTransformRsaOaepEnc11Id`

*Defined as:* `xmlSecNssTransformRsaOaepEnc11GetKlass()`

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

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

---

### `xmlSecNssTransformSha1Id`

*Defined as:* `xmlSecNssTransformSha1GetKlass()`

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

The SHA1 digest transform klass.

---

### `xmlSecNssTransformSha224Id`

*Defined as:* `xmlSecNssTransformSha224GetKlass()`

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

The SHA2-224 digest transform klass.

---

### `xmlSecNssTransformSha256Id`

*Defined as:* `xmlSecNssTransformSha256GetKlass()`

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

The SHA2-256 digest transform klass.

---

### `xmlSecNssTransformSha384Id`

*Defined as:* `xmlSecNssTransformSha384GetKlass()`

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

The SHA2-384 digest transform klass.

---

### `xmlSecNssTransformSha512Id`

*Defined as:* `xmlSecNssTransformSha512GetKlass()`

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

The SHA2-512 digest transform klass.

---

### `xmlSecNssTransformSha3_224Id`

*Defined as:* `xmlSecNssTransformSha3_224GetKlass()`

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

The SHA3-224 digest transform klass.

---

### `xmlSecNssTransformSha3_256Id`

*Defined as:* `xmlSecNssTransformSha3_256GetKlass()`

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

The SHA3-256 digest transform klass.

---

### `xmlSecNssTransformSha3_384Id`

*Defined as:* `xmlSecNssTransformSha3_384GetKlass()`

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

The SHA3-384 digest transform klass.

---

### `xmlSecNssTransformSha3_512Id`

*Defined as:* `xmlSecNssTransformSha3_512GetKlass()`

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

The SHA3-512 digest transform klass.

---

### `xmlSecNssTransformMd5Id`

*Defined as:* `xmlSecNssTransformMd5GetKlass()`

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

The MD5 digest transform klass.

---

### `xmlSecNssKeyDataDEREncodedKeyValueId`

*Defined as:* `xmlSecNssKeyDataDEREncodedKeyValueGetKlass()`

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

The Nss DEREncodedKeyValue data klass.

---

## Functions

### `xmlSecCryptoGetFunctions_nss`

```c
xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_nss(void);
```

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

Gets the pointer to xmlsec-nss functions table.

End exclude from Doxygen

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

---

### `xmlSecNssInit`

```c
int xmlSecNssInit(void);
```

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

Initializes the NSS crypto engine.

XMLSec library specific crypto engine initialization. 

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

---

### `xmlSecNssShutdown`

```c
int xmlSecNssShutdown(void);
```

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

XMLSec library specific crypto engine shutdown.

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

---

### `xmlSecNssKeysMngrInit`

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

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

Adds NSS specific key data stores in keys manager.

**Parameters:**

- `mngr` — the pointer to keys manager.


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

---

### `xmlSecNssGenerateRandom`

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

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

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.

---

### `xmlSecNssErrorsDefaultCallback`

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

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

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

---

### `xmlSecNssGetInternalKeySlot`

```c
PK11SlotInfo * xmlSecNssGetInternalKeySlot(void);
```

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

Gets internal NSS key slot.

**Returns:** internal key slot and initializes it if needed.

---

### `xmlSecNssKeyDataAesGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataAesGetKlass(void);
```

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

The AES key data klass.

**Returns:** AES key data klass.

---

### `xmlSecNssKeyDataAesSet`

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

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

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.

---

### `xmlSecNssTransformAes128CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformAes128CbcGetKlass(void);
```

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

AES 128 CBC encryption transform klass.

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

---

### `xmlSecNssTransformAes192CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformAes192CbcGetKlass(void);
```

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

AES 192 CBC encryption transform klass.

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

---

### `xmlSecNssTransformAes256CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformAes256CbcGetKlass(void);
```

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

AES 256 CBC encryption transform klass.

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

---

### `xmlSecNssTransformAes128GcmGetKlass`

```c
xmlSecTransformId xmlSecNssTransformAes128GcmGetKlass(void);
```

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

AES 128 GCM encryption transform klass.

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

---

### `xmlSecNssTransformAes192GcmGetKlass`

```c
xmlSecTransformId xmlSecNssTransformAes192GcmGetKlass(void);
```

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

AES 192 GCM encryption transform klass.

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

---

### `xmlSecNssTransformAes256GcmGetKlass`

```c
xmlSecTransformId xmlSecNssTransformAes256GcmGetKlass(void);
```

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

AES 256 GCM encryption transform klass.

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

---

### `xmlSecNssTransformKWAes128GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWAes128GetKlass(void);
```

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

The AES-128 key wrapper transform klass.

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

---

### `xmlSecNssTransformKWAes192GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWAes192GetKlass(void);
```

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

The AES-192 key wrapper transform klass.

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

---

### `xmlSecNssTransformKWAes256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWAes256GetKlass(void);
```

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

The AES-256 key wrapper transform klass.

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

---

### `xmlSecNssKeyDataCamelliaGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataCamelliaGetKlass(void);
```

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

The Camellia key data klass.

**Returns:** Camellia key data klass.

---

### `xmlSecNssKeyDataCamelliaSet`

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

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

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.

---

### `xmlSecNssTransformCamellia128CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformCamellia128CbcGetKlass(void);
```

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

Camellia 128 CBC encryption transform klass.

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

---

### `xmlSecNssTransformCamellia192CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformCamellia192CbcGetKlass(void);
```

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

Camellia 192 CBC encryption transform klass.

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

---

### `xmlSecNssTransformCamellia256CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformCamellia256CbcGetKlass(void);
```

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

Camellia 256 CBC encryption transform klass.

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

---

### `xmlSecNssTransformKWCamellia128GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWCamellia128GetKlass(void);
```

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

The Camellia-128 key wrapper transform klass.

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

---

### `xmlSecNssTransformKWCamellia192GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWCamellia192GetKlass(void);
```

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

The Camellia-192 key wrapper transform klass.

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

---

### `xmlSecNssTransformKWCamellia256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWCamellia256GetKlass(void);
```

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

The Camellia-256 key wrapper transform klass.

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

---

### `xmlSecNssKeyDataDesGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataDesGetKlass(void);
```

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

The DES key data klass.

**Returns:** DES key data klass.

---

### `xmlSecNssKeyDataDesSet`

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

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

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.

---

### `xmlSecNssTransformDes3CbcGetKlass`

```c
xmlSecTransformId xmlSecNssTransformDes3CbcGetKlass(void);
```

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

Triple DES CBC encryption transform klass.

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

---

### `xmlSecNssTransformKWDes3GetKlass`

```c
xmlSecTransformId xmlSecNssTransformKWDes3GetKlass(void);
```

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

The Triple DES key wrapper transform klass.

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

---

### `xmlSecNssKeyDataChaCha20GetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataChaCha20GetKlass(void);
```

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

The ChaCha20 key data klass.

**Returns:** ChaCha20 key data klass.

---

### `xmlSecNssKeyDataChaCha20Set`

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

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

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.

---

### `xmlSecNssTransformChaCha20Poly1305GetKlass`

```c
xmlSecTransformId xmlSecNssTransformChaCha20Poly1305GetKlass(void);
```

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

ChaCha20-Poly1305 AEAD encryption transform klass.

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

---

### `xmlSecNssKeyDataDsaGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataDsaGetKlass(void);
```

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

The DSA key data klass.

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

---

### `xmlSecNssTransformDsaSha1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformDsaSha1GetKlass(void);
```

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

The DSA-SHA1 signature transform klass.

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

---

### `xmlSecNssTransformDsaSha256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformDsaSha256GetKlass(void);
```

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

The DSA-SHA2-256 signature transform klass.

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

---

### `xmlSecNsskeyDataEcGetKlass`

```c
xmlSecKeyDataId xmlSecNsskeyDataEcGetKlass(void);
```

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

The EC key data klass.

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

---

### `xmlSecNssTransformEcdhGetKlass`

```c
xmlSecTransformId xmlSecNssTransformEcdhGetKlass(void);
```

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

The ECDH key agreement transform klass.

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

---

### `xmlSecNssTransformEcdsaSha1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformEcdsaSha1GetKlass(void);
```

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

The ECDSA-SHA1 signature transform klass.

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

---

### `xmlSecNssTransformEcdsaSha224GetKlass`

```c
xmlSecTransformId xmlSecNssTransformEcdsaSha224GetKlass(void);
```

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

The ECDSA-SHA2-224 signature transform klass.

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

---

### `xmlSecNssTransformEcdsaSha256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformEcdsaSha256GetKlass(void);
```

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

The ECDSA-SHA2-256 signature transform klass.

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

---

### `xmlSecNssTransformEcdsaSha384GetKlass`

```c
xmlSecTransformId xmlSecNssTransformEcdsaSha384GetKlass(void);
```

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

The ECDSA-SHA2-384 signature transform klass.

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

---

### `xmlSecNssTransformEcdsaSha512GetKlass`

```c
xmlSecTransformId xmlSecNssTransformEcdsaSha512GetKlass(void);
```

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

The ECDSA-SHA2-512 signature transform klass.

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

---

### `xmlSecNssKeyDataEdDSAGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataEdDSAGetKlass(void);
```

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

The EdDSA key data klass (Ed25519 and Ed448).

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

---

### `xmlSecNssTransformEdDSAEd25519GetKlass`

```c
xmlSecTransformId xmlSecNssTransformEdDSAEd25519GetKlass(void);
```

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

The EdDSA-Ed25519 signature transform klass.

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

---

### `xmlSecNssKeyDataXdhGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataXdhGetKlass(void);
```

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

The XDH key data klass (X25519 and X448).

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

---

### `xmlSecNssTransformX25519GetKlass`

```c
xmlSecTransformId xmlSecNssTransformX25519GetKlass(void);
```

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

The X25519 key agreement transform klass.

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

---

### `xmlSecNssKeyDataHmacGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataHmacGetKlass(void);
```

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

The HMAC key data klass.

**Returns:** HMAC key data klass.

---

### `xmlSecNssKeyDataHmacSet`

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

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

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.

---

### `xmlSecNssTransformHmacMd5GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacMd5GetKlass(void);
```

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

The HMAC-MD5 transform klass.

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

---

### `xmlSecNssTransformHmacRipemd160GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacRipemd160GetKlass(void);
```

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

The HMAC-RIPEMD160 transform klass.

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

---

### `xmlSecNssTransformHmacSha1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacSha1GetKlass(void);
```

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

The HMAC-SHA1 transform klass.

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

---

### `xmlSecNssTransformHmacSha224GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacSha224GetKlass(void);
```

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

The HMAC-SHA224 transform klass.

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

---

### `xmlSecNssTransformHmacSha256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacSha256GetKlass(void);
```

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

The HMAC-SHA256 transform klass.

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

---

### `xmlSecNssTransformHmacSha384GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacSha384GetKlass(void);
```

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

The HMAC-SHA384 transform klass.

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

---

### `xmlSecNssTransformHmacSha512GetKlass`

```c
xmlSecTransformId xmlSecNssTransformHmacSha512GetKlass(void);
```

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

The HMAC-SHA512 transform klass.

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

---

### `xmlSecNssKeyDataPbkdf2GetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataPbkdf2GetKlass(void);
```

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

The PBKDF2 key data klass.

**Returns:** PBKDF2 key data klass.

---

### `xmlSecNssKeyDataPbkdf2Set`

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

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

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.

---

### `xmlSecNssTransformPbkdf2GetKlass`

```c
xmlSecTransformId xmlSecNssTransformPbkdf2GetKlass(void);
```

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

The PBKDF2 key derivation transform klass.

**Returns:** the PBKDF2 transform klass.


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

---

### `xmlSecNssKeyDataConcatKdfGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataConcatKdfGetKlass(void);
```

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

The ConcatKDF key data klass.

**Returns:** ConcatKDF key data klass.

---

### `xmlSecNssKeyDataConcatKdfSet`

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

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

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.

---

### `xmlSecNssTransformConcatKdfGetKlass`

```c
xmlSecTransformId xmlSecNssTransformConcatKdfGetKlass(void);
```

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

The ConcatKDF key derivation transform klass.

**Returns:** the ConcatKDF transform klass.


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

---

### `xmlSecNssKeyDataHkdfGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataHkdfGetKlass(void);
```

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

The HKDF key data klass.

**Returns:** HKDF key data klass.

---

### `xmlSecNssKeyDataHkdfSet`

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

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

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.

---

### `xmlSecNssTransformHkdfGetKlass`

```c
xmlSecTransformId xmlSecNssTransformHkdfGetKlass(void);
```

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

The HKDF key derivation transform klass.

**Returns:** pointer to HKDF key derivation transform klass.

---

### `xmlSecNssKeyDataRsaGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataRsaGetKlass(void);
```

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

The RSA key data klass.

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

---

### `xmlSecNssTransformRsaMd5GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaMd5GetKlass(void);
```

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

The RSA-MD5 signature transform klass.

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

---

### `xmlSecNssTransformRsaSha1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaSha1GetKlass(void);
```

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

The RSA-SHA1 signature transform klass.

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

---

### `xmlSecNssTransformRsaSha224GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaSha224GetKlass(void);
```

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

The RSA-SHA2-224 signature transform klass.

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

---

### `xmlSecNssTransformRsaSha256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaSha256GetKlass(void);
```

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

The RSA-SHA2-256 signature transform klass.

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

---

### `xmlSecNssTransformRsaSha384GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaSha384GetKlass(void);
```

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

The RSA-SHA2-384 signature transform klass.

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

---

### `xmlSecNssTransformRsaSha512GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaSha512GetKlass(void);
```

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

The RSA-SHA2-512 signature transform klass.

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

---

### `xmlSecNssTransformRsaPssSha1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaPssSha1GetKlass(void);
```

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

The RSA-PSS-SHA1 signature transform klass.

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

---

### `xmlSecNssTransformRsaPssSha224GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaPssSha224GetKlass(void);
```

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

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

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

---

### `xmlSecNssTransformRsaPssSha256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaPssSha256GetKlass(void);
```

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

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

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

---

### `xmlSecNssTransformRsaPssSha384GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaPssSha384GetKlass(void);
```

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

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

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

---

### `xmlSecNssTransformRsaPssSha512GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaPssSha512GetKlass(void);
```

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

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

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

---

### `xmlSecNssTransformRsaPkcs1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaPkcs1GetKlass(void);
```

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

The RSA-PKCS1 key transport transform klass.

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

---

### `xmlSecNssTransformRsaOaepGetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaOaepGetKlass(void);
```

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

RSA-PKCS1 key transport klass for XMLEnc 1.0.

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

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

---

### `xmlSecNssTransformRsaOaepEnc11GetKlass`

```c
xmlSecTransformId xmlSecNssTransformRsaOaepEnc11GetKlass(void);
```

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

RSA-PKCS1 key transport klass for XMLEnc 1.1.

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

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

---

### `xmlSecNssTransformSha1GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha1GetKlass(void);
```

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

SHA-1 digest transform klass.

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

---

### `xmlSecNssTransformSha224GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha224GetKlass(void);
```

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

SHA2-224 digest transform klass.

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

---

### `xmlSecNssTransformSha256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha256GetKlass(void);
```

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

SHA2-256 digest transform klass.

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

---

### `xmlSecNssTransformSha384GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha384GetKlass(void);
```

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

SHA2-384 digest transform klass.

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

---

### `xmlSecNssTransformSha512GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha512GetKlass(void);
```

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

SHA2-512 digest transform klass.

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

---

### `xmlSecNssTransformSha3_224GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha3_224GetKlass(void);
```

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

SHA3-224 digest transform klass.

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

---

### `xmlSecNssTransformSha3_256GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha3_256GetKlass(void);
```

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

SHA3-256 digest transform klass.

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

---

### `xmlSecNssTransformSha3_384GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha3_384GetKlass(void);
```

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

SHA3-384 digest transform klass.

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

---

### `xmlSecNssTransformSha3_512GetKlass`

```c
xmlSecTransformId xmlSecNssTransformSha3_512GetKlass(void);
```

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

SHA3-512 digest transform klass.

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

---

### `xmlSecNssTransformMd5GetKlass`

```c
xmlSecTransformId xmlSecNssTransformMd5GetKlass(void);
```

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

MD5 digest transform klass.

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

---

### `xmlSecNssKeyDataDEREncodedKeyValueGetKlass`

```c
xmlSecKeyDataId xmlSecNssKeyDataDEREncodedKeyValueGetKlass(void);
```

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

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.

---
