diff --git a/docs/api/toc.html b/docs/api/toc.html index db2f70d..721180c 100644 --- a/docs/api/toc.html +++ b/docs/api/toc.html @@ -441,14 +441,26 @@
  • HashBcSha3_256Algorithm +
  • +
  • + HashBcSha3_256Algorithm.SHA3_256 +
  • HashBcSha3_384Algorithm +
  • +
  • + HashBcSha3_384Algorithm.SHA3_384 +
  • HashBcSha3_512Algorithm +
  • +
  • + HashBcSha3_512Algorithm.SHA3_512 +
  • HashBcShake128Algorithm @@ -465,14 +477,26 @@
  • MacBcHmacSha3_256Algorithm +
  • +
  • + MacBcHmacSha3_256Algorithm.HMACSHA3_256 +
  • MacBcHmacSha3_384Algorithm +
  • +
  • + MacBcHmacSha3_384Algorithm.HMACSHA3_384 +
  • MacBcHmacSha3_512Algorithm +
  • +
  • + MacBcHmacSha3_512Algorithm.HMACSHA3_512 +
  • RandomDataProvider diff --git a/docs/api/toc.json b/docs/api/toc.json index 0300063..a443a42 100644 --- a/docs/api/toc.json +++ b/docs/api/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"wan24.Crypto.BC","href":"wan24.Crypto.BC.html","topicHref":"wan24.Crypto.BC.html","topicUid":"wan24.Crypto.BC","items":[{"name":"AsymmetricBcEcDiffieHellmanAlgorithm","href":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanAlgorithm"},{"name":"AsymmetricBcEcDiffieHellmanPrivateKey","href":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPrivateKey"},{"name":"AsymmetricBcEcDiffieHellmanPublicKey","href":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPublicKey"},{"name":"AsymmetricBcEcDsaAlgorithm","href":"wan24.Crypto.BC.AsymmetricBcEcDsaAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDsaAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDsaAlgorithm"},{"name":"AsymmetricBcEcDsaPrivateKey","href":"wan24.Crypto.BC.AsymmetricBcEcDsaPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDsaPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDsaPrivateKey"},{"name":"AsymmetricBcEcDsaPublicKey","href":"wan24.Crypto.BC.AsymmetricBcEcDsaPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDsaPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDsaPublicKey"},{"name":"AsymmetricBikeAlgorithm","href":"wan24.Crypto.BC.AsymmetricBikeAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricBikeAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricBikeAlgorithm"},{"name":"AsymmetricBikeHelper","href":"wan24.Crypto.BC.AsymmetricBikeHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricBikeHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricBikeHelper"},{"name":"AsymmetricBikePrivateKey","href":"wan24.Crypto.BC.AsymmetricBikePrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBikePrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBikePrivateKey"},{"name":"AsymmetricBikePublicKey","href":"wan24.Crypto.BC.AsymmetricBikePublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBikePublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBikePublicKey"},{"name":"AsymmetricDilithiumAlgorithm","href":"wan24.Crypto.BC.AsymmetricDilithiumAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumAlgorithm"},{"name":"AsymmetricDilithiumHelper","href":"wan24.Crypto.BC.AsymmetricDilithiumHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumHelper"},{"name":"AsymmetricDilithiumPrivateKey","href":"wan24.Crypto.BC.AsymmetricDilithiumPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumPrivateKey"},{"name":"AsymmetricDilithiumPublicKey","href":"wan24.Crypto.BC.AsymmetricDilithiumPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumPublicKey"},{"name":"AsymmetricEd25519Algorithm","href":"wan24.Crypto.BC.AsymmetricEd25519Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricEd25519Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricEd25519Algorithm"},{"name":"AsymmetricEd25519PrivateKey","href":"wan24.Crypto.BC.AsymmetricEd25519PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd25519PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd25519PrivateKey"},{"name":"AsymmetricEd25519PublicKey","href":"wan24.Crypto.BC.AsymmetricEd25519PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd25519PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd25519PublicKey"},{"name":"AsymmetricEd448Algorithm","href":"wan24.Crypto.BC.AsymmetricEd448Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricEd448Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricEd448Algorithm"},{"name":"AsymmetricEd448PrivateKey","href":"wan24.Crypto.BC.AsymmetricEd448PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd448PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd448PrivateKey"},{"name":"AsymmetricEd448PublicKey","href":"wan24.Crypto.BC.AsymmetricEd448PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd448PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd448PublicKey"},{"name":"AsymmetricFalconAlgorithm","href":"wan24.Crypto.BC.AsymmetricFalconAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconAlgorithm"},{"name":"AsymmetricFalconHelper","href":"wan24.Crypto.BC.AsymmetricFalconHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconHelper"},{"name":"AsymmetricFalconPrivateKey","href":"wan24.Crypto.BC.AsymmetricFalconPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconPrivateKey"},{"name":"AsymmetricFalconPublicKey","href":"wan24.Crypto.BC.AsymmetricFalconPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconPublicKey"},{"name":"AsymmetricFrodoKemAlgorithm","href":"wan24.Crypto.BC.AsymmetricFrodoKemAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemAlgorithm"},{"name":"AsymmetricFrodoKemHelper","href":"wan24.Crypto.BC.AsymmetricFrodoKemHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemHelper"},{"name":"AsymmetricFrodoKemPrivateKey","href":"wan24.Crypto.BC.AsymmetricFrodoKemPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemPrivateKey"},{"name":"AsymmetricFrodoKemPublicKey","href":"wan24.Crypto.BC.AsymmetricFrodoKemPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemPublicKey"},{"name":"AsymmetricHqcAlgorithm","href":"wan24.Crypto.BC.AsymmetricHqcAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcAlgorithm"},{"name":"AsymmetricHqcHelper","href":"wan24.Crypto.BC.AsymmetricHqcHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcHelper"},{"name":"AsymmetricHqcPrivateKey","href":"wan24.Crypto.BC.AsymmetricHqcPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcPrivateKey"},{"name":"AsymmetricHqcPublicKey","href":"wan24.Crypto.BC.AsymmetricHqcPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcPublicKey"},{"name":"AsymmetricKyberAlgorithm","href":"wan24.Crypto.BC.AsymmetricKyberAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberAlgorithm"},{"name":"AsymmetricKyberHelper","href":"wan24.Crypto.BC.AsymmetricKyberHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberHelper"},{"name":"AsymmetricKyberPrivateKey","href":"wan24.Crypto.BC.AsymmetricKyberPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberPrivateKey"},{"name":"AsymmetricKyberPublicKey","href":"wan24.Crypto.BC.AsymmetricKyberPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberPublicKey"},{"name":"AsymmetricNtruEncryptAlgorithm","href":"wan24.Crypto.BC.AsymmetricNtruEncryptAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruEncryptAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruEncryptAlgorithm"},{"name":"AsymmetricNtruEncryptPrivateKey","href":"wan24.Crypto.BC.AsymmetricNtruEncryptPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruEncryptPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruEncryptPrivateKey"},{"name":"AsymmetricNtruEncryptPublicKey","href":"wan24.Crypto.BC.AsymmetricNtruEncryptPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruEncryptPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruEncryptPublicKey"},{"name":"AsymmetricNtruHelper","href":"wan24.Crypto.BC.AsymmetricNtruHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruHelper"},{"name":"AsymmetricPicnicAlgorithm","href":"wan24.Crypto.BC.AsymmetricPicnicAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicAlgorithm"},{"name":"AsymmetricPicnicHelper","href":"wan24.Crypto.BC.AsymmetricPicnicHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicHelper"},{"name":"AsymmetricPicnicPrivateKey","href":"wan24.Crypto.BC.AsymmetricPicnicPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicPrivateKey"},{"name":"AsymmetricPicnicPublicKey","href":"wan24.Crypto.BC.AsymmetricPicnicPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicPublicKey"},{"name":"AsymmetricSNtruPrimeAlgorithm","href":"wan24.Crypto.BC.AsymmetricSNtruPrimeAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimeAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimeAlgorithm"},{"name":"AsymmetricSNtruPrimeHelper","href":"wan24.Crypto.BC.AsymmetricSNtruPrimeHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimeHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimeHelper"},{"name":"AsymmetricSNtruPrimePrivateKey","href":"wan24.Crypto.BC.AsymmetricSNtruPrimePrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimePrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimePrivateKey"},{"name":"AsymmetricSNtruPrimePublicKey","href":"wan24.Crypto.BC.AsymmetricSNtruPrimePublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimePublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimePublicKey"},{"name":"AsymmetricSphincsPlusAlgorithm","href":"wan24.Crypto.BC.AsymmetricSphincsPlusAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusAlgorithm"},{"name":"AsymmetricSphincsPlusHelper","href":"wan24.Crypto.BC.AsymmetricSphincsPlusHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusHelper"},{"name":"AsymmetricSphincsPlusPrivateKey","href":"wan24.Crypto.BC.AsymmetricSphincsPlusPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusPrivateKey"},{"name":"AsymmetricSphincsPlusPublicKey","href":"wan24.Crypto.BC.AsymmetricSphincsPlusPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusPublicKey"},{"name":"AsymmetricX25519Algorithm","href":"wan24.Crypto.BC.AsymmetricX25519Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricX25519Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricX25519Algorithm"},{"name":"AsymmetricX25519PrivateKey","href":"wan24.Crypto.BC.AsymmetricX25519PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX25519PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX25519PrivateKey"},{"name":"AsymmetricX25519PublicKey","href":"wan24.Crypto.BC.AsymmetricX25519PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX25519PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX25519PublicKey"},{"name":"AsymmetricX448Algorithm","href":"wan24.Crypto.BC.AsymmetricX448Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricX448Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricX448Algorithm"},{"name":"AsymmetricX448PrivateKey","href":"wan24.Crypto.BC.AsymmetricX448PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX448PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX448PrivateKey"},{"name":"AsymmetricX448PublicKey","href":"wan24.Crypto.BC.AsymmetricX448PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX448PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX448PublicKey"},{"name":"AsymmetricXEd25519Algorithm","href":"wan24.Crypto.BC.AsymmetricXEd25519Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd25519Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd25519Algorithm"},{"name":"AsymmetricXEd25519PrivateKey","href":"wan24.Crypto.BC.AsymmetricXEd25519PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd25519PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd25519PrivateKey"},{"name":"AsymmetricXEd25519PublicKey","href":"wan24.Crypto.BC.AsymmetricXEd25519PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd25519PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd25519PublicKey"},{"name":"AsymmetricXEd448Algorithm","href":"wan24.Crypto.BC.AsymmetricXEd448Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd448Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd448Algorithm"},{"name":"AsymmetricXEd448PrivateKey","href":"wan24.Crypto.BC.AsymmetricXEd448PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd448PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd448PrivateKey"},{"name":"AsymmetricXEd448PublicKey","href":"wan24.Crypto.BC.AsymmetricXEd448PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd448PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd448PublicKey"},{"name":"BcEllipticCurves","href":"wan24.Crypto.BC.BcEllipticCurves.html","topicHref":"wan24.Crypto.BC.BcEllipticCurves.html","topicUid":"wan24.Crypto.BC.BcEllipticCurves"},{"name":"Bootstrap","href":"wan24.Crypto.BC.Bootstrap.html","topicHref":"wan24.Crypto.BC.Bootstrap.html","topicUid":"wan24.Crypto.BC.Bootstrap"},{"name":"BouncyCastle","href":"wan24.Crypto.BC.BouncyCastle.html","topicHref":"wan24.Crypto.BC.BouncyCastle.html","topicUid":"wan24.Crypto.BC.BouncyCastle"},{"name":"BouncyCastleAeadCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase`1"},{"name":"BouncyCastleAsymmetricAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-7.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-7.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase`7"},{"name":"BouncyCastleAsymmetricAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-8.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-8.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase`8"},{"name":"BouncyCastleAsymmetricNonPqcPrivateKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateKeyBase-5.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateKeyBase-5.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateKeyBase`5"},{"name":"BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2-6.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2-6.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2`6"},{"name":"BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase-6.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase-6.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase`6"},{"name":"BouncyCastleAsymmetricNonPqcPublicKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicKeyBase-3.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicKeyBase-3.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicKeyBase`3"},{"name":"BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2-4.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2-4.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2`4"},{"name":"BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase-4.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase-4.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase`4"},{"name":"BouncyCastleAsymmetricPqcPrivateKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyBase-5.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyBase-5.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyBase`5"},{"name":"BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase-7.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase-7.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase`7"},{"name":"BouncyCastleAsymmetricPqcPrivateSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateSignatureKeyBase-6.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateSignatureKeyBase-6.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateSignatureKeyBase`6"},{"name":"BouncyCastleAsymmetricPqcPublicKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicKeyBase-3.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicKeyBase-3.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicKeyBase`3"},{"name":"BouncyCastleAsymmetricPqcPublicSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicSignatureKeyBase-4.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicSignatureKeyBase-4.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicSignatureKeyBase`4"},{"name":"BouncyCastleAsymmetricPrivateKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPrivateKeyBase-5.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPrivateKeyBase-5.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPrivateKeyBase`5"},{"name":"BouncyCastleAsymmetricPublicKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPublicKeyBase-3.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPublicKeyBase-3.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPublicKeyBase`3"},{"name":"BouncyCastleBlockCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleBlockCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleBlockCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleBlockCipherAlgorithmBase`1"},{"name":"BouncyCastleBufferedCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleBufferedCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleBufferedCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleBufferedCipherAlgorithmBase`1"},{"name":"BouncyCastleCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleCipherAlgorithmBase`1"},{"name":"BouncyCastleCryptoTransform","href":"wan24.Crypto.BC.BouncyCastleCryptoTransform.html","topicHref":"wan24.Crypto.BC.BouncyCastleCryptoTransform.html","topicUid":"wan24.Crypto.BC.BouncyCastleCryptoTransform"},{"name":"BouncyCastleHashAlgorithm","href":"wan24.Crypto.BC.BouncyCastleHashAlgorithm.html","topicHref":"wan24.Crypto.BC.BouncyCastleHashAlgorithm.html","topicUid":"wan24.Crypto.BC.BouncyCastleHashAlgorithm"},{"name":"BouncyCastleHashAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleHashAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleHashAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleHashAlgorithmBase`1"},{"name":"BouncyCastleHmacAlgorithm","href":"wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html","topicHref":"wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html","topicUid":"wan24.Crypto.BC.BouncyCastleHmacAlgorithm"},{"name":"BouncyCastleHmacAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase`1"},{"name":"BouncyCastleRandomGenerator","href":"wan24.Crypto.BC.BouncyCastleRandomGenerator.html","topicHref":"wan24.Crypto.BC.BouncyCastleRandomGenerator.html","topicUid":"wan24.Crypto.BC.BouncyCastleRandomGenerator"},{"name":"BouncyCastleRngWrapper","href":"wan24.Crypto.BC.BouncyCastleRngWrapper.html","topicHref":"wan24.Crypto.BC.BouncyCastleRngWrapper.html","topicUid":"wan24.Crypto.BC.BouncyCastleRngWrapper"},{"name":"BouncyCastleStreamCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleStreamCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleStreamCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleStreamCipherAlgorithmBase`1"},{"name":"ChaCha20Rng","href":"wan24.Crypto.BC.ChaCha20Rng.html","topicHref":"wan24.Crypto.BC.ChaCha20Rng.html","topicUid":"wan24.Crypto.BC.ChaCha20Rng"},{"name":"DisposableRngWrapper","href":"wan24.Crypto.BC.DisposableRngWrapper.html","topicHref":"wan24.Crypto.BC.DisposableRngWrapper.html","topicUid":"wan24.Crypto.BC.DisposableRngWrapper"},{"name":"EncryptionAes256GcmAlgorithm","href":"wan24.Crypto.BC.EncryptionAes256GcmAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionAes256GcmAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionAes256GcmAlgorithm"},{"name":"EncryptionBcAes256CbcAlgorithm","href":"wan24.Crypto.BC.EncryptionBcAes256CbcAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionBcAes256CbcAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionBcAes256CbcAlgorithm"},{"name":"EncryptionChaCha20Algorithm","href":"wan24.Crypto.BC.EncryptionChaCha20Algorithm.html","topicHref":"wan24.Crypto.BC.EncryptionChaCha20Algorithm.html","topicUid":"wan24.Crypto.BC.EncryptionChaCha20Algorithm"},{"name":"EncryptionSerpent256CbcAlgorithm","href":"wan24.Crypto.BC.EncryptionSerpent256CbcAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionSerpent256CbcAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionSerpent256CbcAlgorithm"},{"name":"EncryptionSerpent256GcmAlgorithm","href":"wan24.Crypto.BC.EncryptionSerpent256GcmAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionSerpent256GcmAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionSerpent256GcmAlgorithm"},{"name":"EncryptionTwofish256CbcAlgorithm","href":"wan24.Crypto.BC.EncryptionTwofish256CbcAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionTwofish256CbcAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionTwofish256CbcAlgorithm"},{"name":"EncryptionTwofish256GcmAlgorithm","href":"wan24.Crypto.BC.EncryptionTwofish256GcmAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionTwofish256GcmAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionTwofish256GcmAlgorithm"},{"name":"EncryptionXSalsa20Algorithm","href":"wan24.Crypto.BC.EncryptionXSalsa20Algorithm.html","topicHref":"wan24.Crypto.BC.EncryptionXSalsa20Algorithm.html","topicUid":"wan24.Crypto.BC.EncryptionXSalsa20Algorithm"},{"name":"Extensions","href":"wan24.Crypto.BC.Extensions.html","topicHref":"wan24.Crypto.BC.Extensions.html","topicUid":"wan24.Crypto.BC.Extensions"},{"name":"HashBcSha3_256Algorithm","href":"wan24.Crypto.BC.HashBcSha3_256Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcSha3_256Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcSha3_256Algorithm"},{"name":"HashBcSha3_384Algorithm","href":"wan24.Crypto.BC.HashBcSha3_384Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcSha3_384Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcSha3_384Algorithm"},{"name":"HashBcSha3_512Algorithm","href":"wan24.Crypto.BC.HashBcSha3_512Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcSha3_512Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcSha3_512Algorithm"},{"name":"HashBcShake128Algorithm","href":"wan24.Crypto.BC.HashBcShake128Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcShake128Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcShake128Algorithm"},{"name":"HashBcShake256Algorithm","href":"wan24.Crypto.BC.HashBcShake256Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcShake256Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcShake256Algorithm"},{"name":"IBouncyCastleRng","href":"wan24.Crypto.BC.IBouncyCastleRng.html","topicHref":"wan24.Crypto.BC.IBouncyCastleRng.html","topicUid":"wan24.Crypto.BC.IBouncyCastleRng"},{"name":"MacBcHmacSha3_256Algorithm","href":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm"},{"name":"MacBcHmacSha3_384Algorithm","href":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm"},{"name":"MacBcHmacSha3_512Algorithm","href":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm"},{"name":"RandomDataProvider","href":"wan24.Crypto.BC.RandomDataProvider.html","topicHref":"wan24.Crypto.BC.RandomDataProvider.html","topicUid":"wan24.Crypto.BC.RandomDataProvider"},{"name":"RandomDataProvider.SeedEventArgs","href":"wan24.Crypto.BC.RandomDataProvider.SeedEventArgs.html","topicHref":"wan24.Crypto.BC.RandomDataProvider.SeedEventArgs.html","topicUid":"wan24.Crypto.BC.RandomDataProvider.SeedEventArgs"},{"name":"RandomDataProvider.Seed_Delegate","href":"wan24.Crypto.BC.RandomDataProvider.Seed_Delegate.html","topicHref":"wan24.Crypto.BC.RandomDataProvider.Seed_Delegate.html","topicUid":"wan24.Crypto.BC.RandomDataProvider.Seed_Delegate"},{"name":"StreamCipherRng","href":"wan24.Crypto.BC.StreamCipherRng.html","topicHref":"wan24.Crypto.BC.StreamCipherRng.html","topicUid":"wan24.Crypto.BC.StreamCipherRng"},{"name":"XSalsa20Rng","href":"wan24.Crypto.BC.XSalsa20Rng.html","topicHref":"wan24.Crypto.BC.XSalsa20Rng.html","topicUid":"wan24.Crypto.BC.XSalsa20Rng"}]}],"memberLayout":"SamePage"} +{"items":[{"name":"wan24.Crypto.BC","href":"wan24.Crypto.BC.html","topicHref":"wan24.Crypto.BC.html","topicUid":"wan24.Crypto.BC","items":[{"name":"AsymmetricBcEcDiffieHellmanAlgorithm","href":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanAlgorithm"},{"name":"AsymmetricBcEcDiffieHellmanPrivateKey","href":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPrivateKey"},{"name":"AsymmetricBcEcDiffieHellmanPublicKey","href":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDiffieHellmanPublicKey"},{"name":"AsymmetricBcEcDsaAlgorithm","href":"wan24.Crypto.BC.AsymmetricBcEcDsaAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDsaAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDsaAlgorithm"},{"name":"AsymmetricBcEcDsaPrivateKey","href":"wan24.Crypto.BC.AsymmetricBcEcDsaPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDsaPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDsaPrivateKey"},{"name":"AsymmetricBcEcDsaPublicKey","href":"wan24.Crypto.BC.AsymmetricBcEcDsaPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBcEcDsaPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBcEcDsaPublicKey"},{"name":"AsymmetricBikeAlgorithm","href":"wan24.Crypto.BC.AsymmetricBikeAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricBikeAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricBikeAlgorithm"},{"name":"AsymmetricBikeHelper","href":"wan24.Crypto.BC.AsymmetricBikeHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricBikeHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricBikeHelper"},{"name":"AsymmetricBikePrivateKey","href":"wan24.Crypto.BC.AsymmetricBikePrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBikePrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBikePrivateKey"},{"name":"AsymmetricBikePublicKey","href":"wan24.Crypto.BC.AsymmetricBikePublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricBikePublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricBikePublicKey"},{"name":"AsymmetricDilithiumAlgorithm","href":"wan24.Crypto.BC.AsymmetricDilithiumAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumAlgorithm"},{"name":"AsymmetricDilithiumHelper","href":"wan24.Crypto.BC.AsymmetricDilithiumHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumHelper"},{"name":"AsymmetricDilithiumPrivateKey","href":"wan24.Crypto.BC.AsymmetricDilithiumPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumPrivateKey"},{"name":"AsymmetricDilithiumPublicKey","href":"wan24.Crypto.BC.AsymmetricDilithiumPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricDilithiumPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricDilithiumPublicKey"},{"name":"AsymmetricEd25519Algorithm","href":"wan24.Crypto.BC.AsymmetricEd25519Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricEd25519Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricEd25519Algorithm"},{"name":"AsymmetricEd25519PrivateKey","href":"wan24.Crypto.BC.AsymmetricEd25519PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd25519PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd25519PrivateKey"},{"name":"AsymmetricEd25519PublicKey","href":"wan24.Crypto.BC.AsymmetricEd25519PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd25519PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd25519PublicKey"},{"name":"AsymmetricEd448Algorithm","href":"wan24.Crypto.BC.AsymmetricEd448Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricEd448Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricEd448Algorithm"},{"name":"AsymmetricEd448PrivateKey","href":"wan24.Crypto.BC.AsymmetricEd448PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd448PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd448PrivateKey"},{"name":"AsymmetricEd448PublicKey","href":"wan24.Crypto.BC.AsymmetricEd448PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricEd448PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricEd448PublicKey"},{"name":"AsymmetricFalconAlgorithm","href":"wan24.Crypto.BC.AsymmetricFalconAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconAlgorithm"},{"name":"AsymmetricFalconHelper","href":"wan24.Crypto.BC.AsymmetricFalconHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconHelper"},{"name":"AsymmetricFalconPrivateKey","href":"wan24.Crypto.BC.AsymmetricFalconPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconPrivateKey"},{"name":"AsymmetricFalconPublicKey","href":"wan24.Crypto.BC.AsymmetricFalconPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFalconPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFalconPublicKey"},{"name":"AsymmetricFrodoKemAlgorithm","href":"wan24.Crypto.BC.AsymmetricFrodoKemAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemAlgorithm"},{"name":"AsymmetricFrodoKemHelper","href":"wan24.Crypto.BC.AsymmetricFrodoKemHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemHelper"},{"name":"AsymmetricFrodoKemPrivateKey","href":"wan24.Crypto.BC.AsymmetricFrodoKemPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemPrivateKey"},{"name":"AsymmetricFrodoKemPublicKey","href":"wan24.Crypto.BC.AsymmetricFrodoKemPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricFrodoKemPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricFrodoKemPublicKey"},{"name":"AsymmetricHqcAlgorithm","href":"wan24.Crypto.BC.AsymmetricHqcAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcAlgorithm"},{"name":"AsymmetricHqcHelper","href":"wan24.Crypto.BC.AsymmetricHqcHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcHelper"},{"name":"AsymmetricHqcPrivateKey","href":"wan24.Crypto.BC.AsymmetricHqcPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcPrivateKey"},{"name":"AsymmetricHqcPublicKey","href":"wan24.Crypto.BC.AsymmetricHqcPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricHqcPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricHqcPublicKey"},{"name":"AsymmetricKyberAlgorithm","href":"wan24.Crypto.BC.AsymmetricKyberAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberAlgorithm"},{"name":"AsymmetricKyberHelper","href":"wan24.Crypto.BC.AsymmetricKyberHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberHelper"},{"name":"AsymmetricKyberPrivateKey","href":"wan24.Crypto.BC.AsymmetricKyberPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberPrivateKey"},{"name":"AsymmetricKyberPublicKey","href":"wan24.Crypto.BC.AsymmetricKyberPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricKyberPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricKyberPublicKey"},{"name":"AsymmetricNtruEncryptAlgorithm","href":"wan24.Crypto.BC.AsymmetricNtruEncryptAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruEncryptAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruEncryptAlgorithm"},{"name":"AsymmetricNtruEncryptPrivateKey","href":"wan24.Crypto.BC.AsymmetricNtruEncryptPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruEncryptPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruEncryptPrivateKey"},{"name":"AsymmetricNtruEncryptPublicKey","href":"wan24.Crypto.BC.AsymmetricNtruEncryptPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruEncryptPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruEncryptPublicKey"},{"name":"AsymmetricNtruHelper","href":"wan24.Crypto.BC.AsymmetricNtruHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricNtruHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricNtruHelper"},{"name":"AsymmetricPicnicAlgorithm","href":"wan24.Crypto.BC.AsymmetricPicnicAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicAlgorithm"},{"name":"AsymmetricPicnicHelper","href":"wan24.Crypto.BC.AsymmetricPicnicHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicHelper"},{"name":"AsymmetricPicnicPrivateKey","href":"wan24.Crypto.BC.AsymmetricPicnicPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicPrivateKey"},{"name":"AsymmetricPicnicPublicKey","href":"wan24.Crypto.BC.AsymmetricPicnicPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricPicnicPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricPicnicPublicKey"},{"name":"AsymmetricSNtruPrimeAlgorithm","href":"wan24.Crypto.BC.AsymmetricSNtruPrimeAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimeAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimeAlgorithm"},{"name":"AsymmetricSNtruPrimeHelper","href":"wan24.Crypto.BC.AsymmetricSNtruPrimeHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimeHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimeHelper"},{"name":"AsymmetricSNtruPrimePrivateKey","href":"wan24.Crypto.BC.AsymmetricSNtruPrimePrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimePrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimePrivateKey"},{"name":"AsymmetricSNtruPrimePublicKey","href":"wan24.Crypto.BC.AsymmetricSNtruPrimePublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSNtruPrimePublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSNtruPrimePublicKey"},{"name":"AsymmetricSphincsPlusAlgorithm","href":"wan24.Crypto.BC.AsymmetricSphincsPlusAlgorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusAlgorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusAlgorithm"},{"name":"AsymmetricSphincsPlusHelper","href":"wan24.Crypto.BC.AsymmetricSphincsPlusHelper.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusHelper.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusHelper"},{"name":"AsymmetricSphincsPlusPrivateKey","href":"wan24.Crypto.BC.AsymmetricSphincsPlusPrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusPrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusPrivateKey"},{"name":"AsymmetricSphincsPlusPublicKey","href":"wan24.Crypto.BC.AsymmetricSphincsPlusPublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricSphincsPlusPublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricSphincsPlusPublicKey"},{"name":"AsymmetricX25519Algorithm","href":"wan24.Crypto.BC.AsymmetricX25519Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricX25519Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricX25519Algorithm"},{"name":"AsymmetricX25519PrivateKey","href":"wan24.Crypto.BC.AsymmetricX25519PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX25519PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX25519PrivateKey"},{"name":"AsymmetricX25519PublicKey","href":"wan24.Crypto.BC.AsymmetricX25519PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX25519PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX25519PublicKey"},{"name":"AsymmetricX448Algorithm","href":"wan24.Crypto.BC.AsymmetricX448Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricX448Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricX448Algorithm"},{"name":"AsymmetricX448PrivateKey","href":"wan24.Crypto.BC.AsymmetricX448PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX448PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX448PrivateKey"},{"name":"AsymmetricX448PublicKey","href":"wan24.Crypto.BC.AsymmetricX448PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricX448PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricX448PublicKey"},{"name":"AsymmetricXEd25519Algorithm","href":"wan24.Crypto.BC.AsymmetricXEd25519Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd25519Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd25519Algorithm"},{"name":"AsymmetricXEd25519PrivateKey","href":"wan24.Crypto.BC.AsymmetricXEd25519PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd25519PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd25519PrivateKey"},{"name":"AsymmetricXEd25519PublicKey","href":"wan24.Crypto.BC.AsymmetricXEd25519PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd25519PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd25519PublicKey"},{"name":"AsymmetricXEd448Algorithm","href":"wan24.Crypto.BC.AsymmetricXEd448Algorithm.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd448Algorithm.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd448Algorithm"},{"name":"AsymmetricXEd448PrivateKey","href":"wan24.Crypto.BC.AsymmetricXEd448PrivateKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd448PrivateKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd448PrivateKey"},{"name":"AsymmetricXEd448PublicKey","href":"wan24.Crypto.BC.AsymmetricXEd448PublicKey.html","topicHref":"wan24.Crypto.BC.AsymmetricXEd448PublicKey.html","topicUid":"wan24.Crypto.BC.AsymmetricXEd448PublicKey"},{"name":"BcEllipticCurves","href":"wan24.Crypto.BC.BcEllipticCurves.html","topicHref":"wan24.Crypto.BC.BcEllipticCurves.html","topicUid":"wan24.Crypto.BC.BcEllipticCurves"},{"name":"Bootstrap","href":"wan24.Crypto.BC.Bootstrap.html","topicHref":"wan24.Crypto.BC.Bootstrap.html","topicUid":"wan24.Crypto.BC.Bootstrap"},{"name":"BouncyCastle","href":"wan24.Crypto.BC.BouncyCastle.html","topicHref":"wan24.Crypto.BC.BouncyCastle.html","topicUid":"wan24.Crypto.BC.BouncyCastle"},{"name":"BouncyCastleAeadCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase`1"},{"name":"BouncyCastleAsymmetricAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-7.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-7.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase`7"},{"name":"BouncyCastleAsymmetricAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-8.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase-8.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricAlgorithmBase`8"},{"name":"BouncyCastleAsymmetricNonPqcPrivateKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateKeyBase-5.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateKeyBase-5.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateKeyBase`5"},{"name":"BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2-6.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2-6.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2`6"},{"name":"BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase-6.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase-6.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase`6"},{"name":"BouncyCastleAsymmetricNonPqcPublicKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicKeyBase-3.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicKeyBase-3.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicKeyBase`3"},{"name":"BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2-4.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2-4.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2`4"},{"name":"BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase-4.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase-4.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase`4"},{"name":"BouncyCastleAsymmetricPqcPrivateKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyBase-5.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyBase-5.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyBase`5"},{"name":"BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase-7.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase-7.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase`7"},{"name":"BouncyCastleAsymmetricPqcPrivateSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateSignatureKeyBase-6.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateSignatureKeyBase-6.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPrivateSignatureKeyBase`6"},{"name":"BouncyCastleAsymmetricPqcPublicKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicKeyBase-3.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicKeyBase-3.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicKeyBase`3"},{"name":"BouncyCastleAsymmetricPqcPublicSignatureKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicSignatureKeyBase-4.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicSignatureKeyBase-4.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPqcPublicSignatureKeyBase`4"},{"name":"BouncyCastleAsymmetricPrivateKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPrivateKeyBase-5.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPrivateKeyBase-5.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPrivateKeyBase`5"},{"name":"BouncyCastleAsymmetricPublicKeyBase","href":"wan24.Crypto.BC.BouncyCastleAsymmetricPublicKeyBase-3.html","topicHref":"wan24.Crypto.BC.BouncyCastleAsymmetricPublicKeyBase-3.html","topicUid":"wan24.Crypto.BC.BouncyCastleAsymmetricPublicKeyBase`3"},{"name":"BouncyCastleBlockCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleBlockCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleBlockCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleBlockCipherAlgorithmBase`1"},{"name":"BouncyCastleBufferedCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleBufferedCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleBufferedCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleBufferedCipherAlgorithmBase`1"},{"name":"BouncyCastleCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleCipherAlgorithmBase`1"},{"name":"BouncyCastleCryptoTransform","href":"wan24.Crypto.BC.BouncyCastleCryptoTransform.html","topicHref":"wan24.Crypto.BC.BouncyCastleCryptoTransform.html","topicUid":"wan24.Crypto.BC.BouncyCastleCryptoTransform"},{"name":"BouncyCastleHashAlgorithm","href":"wan24.Crypto.BC.BouncyCastleHashAlgorithm.html","topicHref":"wan24.Crypto.BC.BouncyCastleHashAlgorithm.html","topicUid":"wan24.Crypto.BC.BouncyCastleHashAlgorithm"},{"name":"BouncyCastleHashAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleHashAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleHashAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleHashAlgorithmBase`1"},{"name":"BouncyCastleHmacAlgorithm","href":"wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html","topicHref":"wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html","topicUid":"wan24.Crypto.BC.BouncyCastleHmacAlgorithm"},{"name":"BouncyCastleHmacAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase`1"},{"name":"BouncyCastleRandomGenerator","href":"wan24.Crypto.BC.BouncyCastleRandomGenerator.html","topicHref":"wan24.Crypto.BC.BouncyCastleRandomGenerator.html","topicUid":"wan24.Crypto.BC.BouncyCastleRandomGenerator"},{"name":"BouncyCastleRngWrapper","href":"wan24.Crypto.BC.BouncyCastleRngWrapper.html","topicHref":"wan24.Crypto.BC.BouncyCastleRngWrapper.html","topicUid":"wan24.Crypto.BC.BouncyCastleRngWrapper"},{"name":"BouncyCastleStreamCipherAlgorithmBase","href":"wan24.Crypto.BC.BouncyCastleStreamCipherAlgorithmBase-1.html","topicHref":"wan24.Crypto.BC.BouncyCastleStreamCipherAlgorithmBase-1.html","topicUid":"wan24.Crypto.BC.BouncyCastleStreamCipherAlgorithmBase`1"},{"name":"ChaCha20Rng","href":"wan24.Crypto.BC.ChaCha20Rng.html","topicHref":"wan24.Crypto.BC.ChaCha20Rng.html","topicUid":"wan24.Crypto.BC.ChaCha20Rng"},{"name":"DisposableRngWrapper","href":"wan24.Crypto.BC.DisposableRngWrapper.html","topicHref":"wan24.Crypto.BC.DisposableRngWrapper.html","topicUid":"wan24.Crypto.BC.DisposableRngWrapper"},{"name":"EncryptionAes256GcmAlgorithm","href":"wan24.Crypto.BC.EncryptionAes256GcmAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionAes256GcmAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionAes256GcmAlgorithm"},{"name":"EncryptionBcAes256CbcAlgorithm","href":"wan24.Crypto.BC.EncryptionBcAes256CbcAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionBcAes256CbcAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionBcAes256CbcAlgorithm"},{"name":"EncryptionChaCha20Algorithm","href":"wan24.Crypto.BC.EncryptionChaCha20Algorithm.html","topicHref":"wan24.Crypto.BC.EncryptionChaCha20Algorithm.html","topicUid":"wan24.Crypto.BC.EncryptionChaCha20Algorithm"},{"name":"EncryptionSerpent256CbcAlgorithm","href":"wan24.Crypto.BC.EncryptionSerpent256CbcAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionSerpent256CbcAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionSerpent256CbcAlgorithm"},{"name":"EncryptionSerpent256GcmAlgorithm","href":"wan24.Crypto.BC.EncryptionSerpent256GcmAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionSerpent256GcmAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionSerpent256GcmAlgorithm"},{"name":"EncryptionTwofish256CbcAlgorithm","href":"wan24.Crypto.BC.EncryptionTwofish256CbcAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionTwofish256CbcAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionTwofish256CbcAlgorithm"},{"name":"EncryptionTwofish256GcmAlgorithm","href":"wan24.Crypto.BC.EncryptionTwofish256GcmAlgorithm.html","topicHref":"wan24.Crypto.BC.EncryptionTwofish256GcmAlgorithm.html","topicUid":"wan24.Crypto.BC.EncryptionTwofish256GcmAlgorithm"},{"name":"EncryptionXSalsa20Algorithm","href":"wan24.Crypto.BC.EncryptionXSalsa20Algorithm.html","topicHref":"wan24.Crypto.BC.EncryptionXSalsa20Algorithm.html","topicUid":"wan24.Crypto.BC.EncryptionXSalsa20Algorithm"},{"name":"Extensions","href":"wan24.Crypto.BC.Extensions.html","topicHref":"wan24.Crypto.BC.Extensions.html","topicUid":"wan24.Crypto.BC.Extensions"},{"name":"HashBcSha3_256Algorithm","href":"wan24.Crypto.BC.HashBcSha3_256Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcSha3_256Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcSha3_256Algorithm"},{"name":"HashBcSha3_256Algorithm.SHA3_256","href":"wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html","topicHref":"wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html","topicUid":"wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256"},{"name":"HashBcSha3_384Algorithm","href":"wan24.Crypto.BC.HashBcSha3_384Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcSha3_384Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcSha3_384Algorithm"},{"name":"HashBcSha3_384Algorithm.SHA3_384","href":"wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html","topicHref":"wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html","topicUid":"wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384"},{"name":"HashBcSha3_512Algorithm","href":"wan24.Crypto.BC.HashBcSha3_512Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcSha3_512Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcSha3_512Algorithm"},{"name":"HashBcSha3_512Algorithm.SHA3_512","href":"wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html","topicHref":"wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html","topicUid":"wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512"},{"name":"HashBcShake128Algorithm","href":"wan24.Crypto.BC.HashBcShake128Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcShake128Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcShake128Algorithm"},{"name":"HashBcShake256Algorithm","href":"wan24.Crypto.BC.HashBcShake256Algorithm.html","topicHref":"wan24.Crypto.BC.HashBcShake256Algorithm.html","topicUid":"wan24.Crypto.BC.HashBcShake256Algorithm"},{"name":"IBouncyCastleRng","href":"wan24.Crypto.BC.IBouncyCastleRng.html","topicHref":"wan24.Crypto.BC.IBouncyCastleRng.html","topicUid":"wan24.Crypto.BC.IBouncyCastleRng"},{"name":"MacBcHmacSha3_256Algorithm","href":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm"},{"name":"MacBcHmacSha3_256Algorithm.HMACSHA3_256","href":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256"},{"name":"MacBcHmacSha3_384Algorithm","href":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm"},{"name":"MacBcHmacSha3_384Algorithm.HMACSHA3_384","href":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384"},{"name":"MacBcHmacSha3_512Algorithm","href":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm"},{"name":"MacBcHmacSha3_512Algorithm.HMACSHA3_512","href":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html","topicHref":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html","topicUid":"wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512"},{"name":"RandomDataProvider","href":"wan24.Crypto.BC.RandomDataProvider.html","topicHref":"wan24.Crypto.BC.RandomDataProvider.html","topicUid":"wan24.Crypto.BC.RandomDataProvider"},{"name":"RandomDataProvider.SeedEventArgs","href":"wan24.Crypto.BC.RandomDataProvider.SeedEventArgs.html","topicHref":"wan24.Crypto.BC.RandomDataProvider.SeedEventArgs.html","topicUid":"wan24.Crypto.BC.RandomDataProvider.SeedEventArgs"},{"name":"RandomDataProvider.Seed_Delegate","href":"wan24.Crypto.BC.RandomDataProvider.Seed_Delegate.html","topicHref":"wan24.Crypto.BC.RandomDataProvider.Seed_Delegate.html","topicUid":"wan24.Crypto.BC.RandomDataProvider.Seed_Delegate"},{"name":"StreamCipherRng","href":"wan24.Crypto.BC.StreamCipherRng.html","topicHref":"wan24.Crypto.BC.StreamCipherRng.html","topicUid":"wan24.Crypto.BC.StreamCipherRng"},{"name":"XSalsa20Rng","href":"wan24.Crypto.BC.XSalsa20Rng.html","topicHref":"wan24.Crypto.BC.XSalsa20Rng.html","topicUid":"wan24.Crypto.BC.XSalsa20Rng"}]}],"memberLayout":"SamePage"} diff --git a/docs/api/wan24.Crypto.BC.BouncyCastle.html b/docs/api/wan24.Crypto.BC.BouncyCastle.html index 27e2dca..6a2ad4b 100644 --- a/docs/api/wan24.Crypto.BC.BouncyCastle.html +++ b/docs/api/wan24.Crypto.BC.BouncyCastle.html @@ -141,6 +141,22 @@
    Syntax

    Methods

    + + | + Edit this page + + + View Source + + +

    RegisterNetAlgrithms()

    +

    Register (HMAC)SHA3-* algorithms to wan24.Crypto.CryptoAppConfig (replace the .NET defaults!)

    +
    +
    +
    Declaration
    +
    +
    public static void RegisterNetAlgrithms()
    +
    | Edit this page diff --git a/docs/api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html b/docs/api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html index 84111e5..fc6114c 100644 --- a/docs/api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html +++ b/docs/api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html @@ -109,6 +109,9 @@
    Inheritance
    BouncyCastleHashAlgorithm
    + + +
    Implements
    @@ -117,6 +120,15 @@
    Implements
    Inherited Members
    + + + @@ -177,6 +189,9 @@
    Inherited Members
    + @@ -188,7 +203,7 @@
    Namespace: wan24.Assembly: wan24CryptoBC.dll
    Syntax
    -
    public sealed class BouncyCastleHashAlgorithm : HashAlgorithm, ICryptoTransform, IDisposable
    +
    public class BouncyCastleHashAlgorithm : HashAlgorithm, ICryptoTransform, IDisposable
    Remarks

    Constructor

    @@ -232,6 +247,38 @@
    Parameters
    Remarks

    Constructor

    +

    Fields +

    + + | +
    Edit this page + + + View Source + +

    Digest

    +

    Digest

    +
    +
    +
    Declaration
    +
    +
    protected readonly IDigest Digest
    +
    +
    Field Value
    + + + + + + + + + + + + + +
    TypeDescription
    IDigest

    Properties

    diff --git a/docs/api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html b/docs/api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html index c5b00a4..1d65a54 100644 --- a/docs/api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html +++ b/docs/api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html @@ -110,6 +110,9 @@
    Inheritance
    BouncyCastleHmacAlgorithm
    + + +
    Implements
    @@ -118,6 +121,9 @@
    Implements
    Inherited Members
    + @@ -127,6 +133,15 @@
    Inherited Members
    + + + @@ -184,6 +199,9 @@
    Inherited Members
    + @@ -195,7 +213,7 @@
    Namespace: wan24.Assembly: wan24CryptoBC.dll
    Syntax
    -
    public sealed class BouncyCastleHmacAlgorithm : KeyedHashAlgorithm, ICryptoTransform, IDisposable
    +
    public class BouncyCastleHmacAlgorithm : KeyedHashAlgorithm, ICryptoTransform, IDisposable
    Remarks

    Constructor

    @@ -239,6 +257,38 @@
    Parameters
    Remarks

    Constructor

    +

    Fields +

    + + | +
    Edit this page + + + View Source + +

    Mac

    +

    MAC

    +
    +
    +
    Declaration
    +
    +
    protected readonly IMac Mac
    +
    +
    Field Value
    + + + + + + + + + + + + + +
    TypeDescription
    IMac

    Methods

    diff --git a/docs/api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html b/docs/api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html new file mode 100644 index 0000000..b12e37a --- /dev/null +++ b/docs/api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html @@ -0,0 +1,265 @@ + + + + + + + + Class HashBcSha3_256Algorithm.SHA3_256 | wan24-Crypto-BC + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + diff --git a/docs/api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html b/docs/api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html new file mode 100644 index 0000000..f8ec949 --- /dev/null +++ b/docs/api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html @@ -0,0 +1,265 @@ + + + + + + + + Class HashBcSha3_384Algorithm.SHA3_384 | wan24-Crypto-BC + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + diff --git a/docs/api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html b/docs/api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html new file mode 100644 index 0000000..0ef48f8 --- /dev/null +++ b/docs/api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html @@ -0,0 +1,265 @@ + + + + + + + + Class HashBcSha3_512Algorithm.SHA3_512 | wan24-Crypto-BC + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + diff --git a/docs/api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html b/docs/api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html new file mode 100644 index 0000000..08489bd --- /dev/null +++ b/docs/api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html @@ -0,0 +1,287 @@ + + + + + + + + Class MacBcHmacSha3_256Algorithm.HMACSHA3_256 | wan24-Crypto-BC + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + diff --git a/docs/api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html b/docs/api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html new file mode 100644 index 0000000..b5b2250 --- /dev/null +++ b/docs/api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html @@ -0,0 +1,287 @@ + + + + + + + + Class MacBcHmacSha3_384Algorithm.HMACSHA3_384 | wan24-Crypto-BC + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + diff --git a/docs/api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html b/docs/api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html new file mode 100644 index 0000000..d829ff4 --- /dev/null +++ b/docs/api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html @@ -0,0 +1,287 @@ + + + + + + + + Class MacBcHmacSha3_512Algorithm.HMACSHA3_512 | wan24-Crypto-BC + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + + + + + +
    +
    + + + + + + + + + + + + + + diff --git a/docs/api/wan24.Crypto.BC.html b/docs/api/wan24.Crypto.BC.html index 952ff2e..fc39e78 100644 --- a/docs/api/wan24.Crypto.BC.html +++ b/docs/api/wan24.Crypto.BC.html @@ -421,12 +421,21 @@
    Extensions
    HashBcSha3_256Algorithm

    SHA3-256 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    +
    +
    HashBcSha3_256Algorithm.SHA3_256
    +

    SHA3-256

    HashBcSha3_384Algorithm

    SHA3-384 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    +
    +
    HashBcSha3_384Algorithm.SHA3_384
    +

    SHA3-384

    HashBcSha3_512Algorithm

    SHA3-512 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    +
    +
    HashBcSha3_512Algorithm.SHA3_512
    +

    SHA3-512

    HashBcShake128Algorithm

    Shake128 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    @@ -436,12 +445,21 @@
    HashBcSh
    MacBcHmacSha3_256Algorithm

    HMAC-SHA3-256 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    +
    +
    MacBcHmacSha3_256Algorithm.HMACSHA3_256
    +

    HMACSHA3-256

    MacBcHmacSha3_384Algorithm

    HMAC-SHA3-384 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    +
    +
    MacBcHmacSha3_384Algorithm.HMACSHA3_384
    +

    HMACSHA3-384

    MacBcHmacSha3_512Algorithm

    HMAC-SHA3-512 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform)

    +
    +
    MacBcHmacSha3_512Algorithm.HMACSHA3_512
    +

    HMACSHA3-512

    RandomDataProvider

    Random data provider

    diff --git a/docs/index.html b/docs/index.html index 89c5e33..1d30a53 100644 --- a/docs/index.html +++ b/docs/index.html @@ -312,6 +312,50 @@

    wan24-Crypto algorithm and use the default output length of the wan24-Crypto implementations instead. The NetShake128/256HashAlgorithmAdapter can't be replaced for this reason.

    +

    In order to override the .NET default SHA3 hash and HMAC algorithms, you can +call:

    +
    BouncyCastle.RegisterNetAlgorithms();
    +
    +

    This will use Bouncy Castle SHA3 implementations for the .NET implemented SHA3 +hash algorithms:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameType
    SHA3-256HashBcSha3_256.SHA3_256
    SHA3-384HashBcSha3_384.SHA3_384
    SHA3-512HashBcSha3_512.SHA3_512
    HMACSHA3-256MacBcHmacSha3_256.HMACSHA3_256
    HMACSHA3-384MacBcHmacSha3_384.HMACSHA3_384
    HMACSHA3-512MacBcHmacSha3_512.HMACSHA3_512
    +

    This step is required, if you want to ensure that whenever a .NET crypto type +or any 3rd party crypto type requests a SHA3 hash or HMAC instance using the +static HashAlgorithm.Create("NAME") or KeyedHashAlgorithm.Create("NAME") +methods.

    Use as default algorithms

    To set Bouncy Castle defaults as wan24-Crypto defaults:

    BouncyCastle.SetDefaults();
    diff --git a/docs/index.json b/docs/index.json
    index b87a1cd..e99980e 100644
    --- a/docs/index.json
    +++ b/docs/index.json
    @@ -337,7 +337,7 @@
       "api/wan24.Crypto.BC.BouncyCastle.html": {
         "href": "api/wan24.Crypto.BC.BouncyCastle.html",
         "title": "Class BouncyCastle | wan24-Crypto-BC",
    -    "keywords": "Class BouncyCastle Bouncy Castle helper Inheritance object BouncyCastle Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public static class BouncyCastle Methods | Edit this page View Source ReplaceNetAlgorithms() Replace .NET algorithms which may not be available on all platforms Declaration public static void ReplaceNetAlgorithms() | Edit this page View Source SetDefaults(in bool) Set the implemented algorithms as defaults Declaration public static void SetDefaults(in bool useCurrentDefaultAsCounterAlgorithms = true) Parameters Type Name Description bool useCurrentDefaultAsCounterAlgorithms Use the current wan24-Crypto defaults as counter algorithms?"
    +    "keywords": "Class BouncyCastle Bouncy Castle helper Inheritance object BouncyCastle Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public static class BouncyCastle Methods | Edit this page View Source RegisterNetAlgrithms() Register (HMAC)SHA3-* algorithms to wan24.Crypto.CryptoAppConfig (replace the .NET defaults!) Declaration public static void RegisterNetAlgrithms() | Edit this page View Source ReplaceNetAlgorithms() Replace .NET algorithms which may not be available on all platforms Declaration public static void ReplaceNetAlgorithms() | Edit this page View Source SetDefaults(in bool) Set the implemented algorithms as defaults Declaration public static void SetDefaults(in bool useCurrentDefaultAsCounterAlgorithms = true) Parameters Type Name Description bool useCurrentDefaultAsCounterAlgorithms Use the current wan24-Crypto defaults as counter algorithms?"
       },
       "api/wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase-1.html": {
         "href": "api/wan24.Crypto.BC.BouncyCastleAeadCipherAlgorithmBase-1.html",
    @@ -442,7 +442,7 @@
       "api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html": {
         "href": "api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html",
         "title": "Class BouncyCastleHashAlgorithm | wan24-Crypto-BC",
    -    "keywords": "Class BouncyCastleHashAlgorithm Bouncy Castle hash algorithm Inheritance object HashAlgorithm BouncyCastleHashAlgorithm Implements ICryptoTransform IDisposable Inherited Members HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Create() HashAlgorithm.Create(string) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class BouncyCastleHashAlgorithm : HashAlgorithm, ICryptoTransform, IDisposable Remarks Constructor Constructors | Edit this page View Source BouncyCastleHashAlgorithm(IDigest) Bouncy Castle hash algorithm Declaration public BouncyCastleHashAlgorithm(IDigest digest) Parameters Type Name Description IDigest digest Digest Remarks Constructor Properties | Edit this page View Source HashSize Gets the size, in bits, of the computed hash code. Declaration public override int HashSize { get; } Property Value Type Description int The size, in bits, of the computed hash code. Overrides HashAlgorithm.HashSize Methods | Edit this page View Source Dispose(bool) Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources. Declaration protected override void Dispose(bool disposing) Parameters Type Name Description bool disposing true to release both managed and unmanaged resources; false to release only unmanaged resources. Overrides HashAlgorithm.Dispose(bool) | Edit this page View Source HashCore(byte[], int, int) When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(byte[] array, int ibStart, int cbSize) Parameters Type Name Description byte[] array The input to compute the hash code for. int ibStart The offset into the byte array from which to begin using data. int cbSize The number of bytes in the byte array to use as data. Overrides HashAlgorithm.HashCore(byte[], int, int) | Edit this page View Source HashCore(ReadOnlySpan) Routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(ReadOnlySpan source) Parameters Type Name Description ReadOnlySpan source The input to compute the hash code for. Overrides HashAlgorithm.HashCore(ReadOnlySpan) | Edit this page View Source HashFinal() When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm. Declaration protected override byte[] HashFinal() Returns Type Description byte[] The computed hash code. Overrides HashAlgorithm.HashFinal() | Edit this page View Source Initialize() Resets the hash algorithm to its initial state. Declaration public override void Initialize() Overrides HashAlgorithm.Initialize() | Edit this page View Source TryHashFinal(Span, out int) Attempts to finalize the hash computation after the last data is processed by the hash algorithm. Declaration protected override bool TryHashFinal(Span destination, out int bytesWritten) Parameters Type Name Description Span destination The buffer to receive the hash value. int bytesWritten When this method returns, the total number of bytes written into destination. This parameter is treated as uninitialized. Returns Type Description bool true if destination is long enough to receive the hash value; otherwise, false. Overrides HashAlgorithm.TryHashFinal(Span, out int) Implements ICryptoTransform IDisposable"
    +    "keywords": "Class BouncyCastleHashAlgorithm Bouncy Castle hash algorithm Inheritance object HashAlgorithm BouncyCastleHashAlgorithm HashBcSha3_256Algorithm.SHA3_256 HashBcSha3_384Algorithm.SHA3_384 HashBcSha3_512Algorithm.SHA3_512 Implements ICryptoTransform IDisposable Inherited Members HashAlgorithm.HashSizeValue HashAlgorithm.HashValue HashAlgorithm.State HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Create() HashAlgorithm.Create(string) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public class BouncyCastleHashAlgorithm : HashAlgorithm, ICryptoTransform, IDisposable Remarks Constructor Constructors | Edit this page View Source BouncyCastleHashAlgorithm(IDigest) Bouncy Castle hash algorithm Declaration public BouncyCastleHashAlgorithm(IDigest digest) Parameters Type Name Description IDigest digest Digest Remarks Constructor Fields | Edit this page View Source Digest Digest Declaration protected readonly IDigest Digest Field Value Type Description IDigest Properties | Edit this page View Source HashSize Gets the size, in bits, of the computed hash code. Declaration public override int HashSize { get; } Property Value Type Description int The size, in bits, of the computed hash code. Overrides HashAlgorithm.HashSize Methods | Edit this page View Source Dispose(bool) Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources. Declaration protected override void Dispose(bool disposing) Parameters Type Name Description bool disposing true to release both managed and unmanaged resources; false to release only unmanaged resources. Overrides HashAlgorithm.Dispose(bool) | Edit this page View Source HashCore(byte[], int, int) When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(byte[] array, int ibStart, int cbSize) Parameters Type Name Description byte[] array The input to compute the hash code for. int ibStart The offset into the byte array from which to begin using data. int cbSize The number of bytes in the byte array to use as data. Overrides HashAlgorithm.HashCore(byte[], int, int) | Edit this page View Source HashCore(ReadOnlySpan) Routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(ReadOnlySpan source) Parameters Type Name Description ReadOnlySpan source The input to compute the hash code for. Overrides HashAlgorithm.HashCore(ReadOnlySpan) | Edit this page View Source HashFinal() When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm. Declaration protected override byte[] HashFinal() Returns Type Description byte[] The computed hash code. Overrides HashAlgorithm.HashFinal() | Edit this page View Source Initialize() Resets the hash algorithm to its initial state. Declaration public override void Initialize() Overrides HashAlgorithm.Initialize() | Edit this page View Source TryHashFinal(Span, out int) Attempts to finalize the hash computation after the last data is processed by the hash algorithm. Declaration protected override bool TryHashFinal(Span destination, out int bytesWritten) Parameters Type Name Description Span destination The buffer to receive the hash value. int bytesWritten When this method returns, the total number of bytes written into destination. This parameter is treated as uninitialized. Returns Type Description bool true if destination is long enough to receive the hash value; otherwise, false. Overrides HashAlgorithm.TryHashFinal(Span, out int) Implements ICryptoTransform IDisposable"
       },
       "api/wan24.Crypto.BC.BouncyCastleHashAlgorithmBase-1.html": {
         "href": "api/wan24.Crypto.BC.BouncyCastleHashAlgorithmBase-1.html",
    @@ -452,7 +452,7 @@
       "api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html": {
         "href": "api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html",
         "title": "Class BouncyCastleHmacAlgorithm | wan24-Crypto-BC",
    -    "keywords": "Class BouncyCastleHmacAlgorithm Bouncy Castle HMAC algorithm Inheritance object HashAlgorithm KeyedHashAlgorithm BouncyCastleHmacAlgorithm Implements ICryptoTransform IDisposable Inherited Members KeyedHashAlgorithm.Create() KeyedHashAlgorithm.Create(string) KeyedHashAlgorithm.Key HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.HashSize HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class BouncyCastleHmacAlgorithm : KeyedHashAlgorithm, ICryptoTransform, IDisposable Remarks Constructor Constructors | Edit this page View Source BouncyCastleHmacAlgorithm(IMac) Bouncy Castle HMAC algorithm Declaration public BouncyCastleHmacAlgorithm(IMac mac) Parameters Type Name Description IMac mac MAC Remarks Constructor Methods | Edit this page View Source Dispose(bool) Releases the unmanaged resources used by the KeyedHashAlgorithm and optionally releases the managed resources. Declaration protected override void Dispose(bool disposing) Parameters Type Name Description bool disposing true to release both managed and unmanaged resources; false to release only unmanaged resources. Overrides KeyedHashAlgorithm.Dispose(bool) | Edit this page View Source HashCore(byte[], int, int) When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(byte[] array, int ibStart, int cbSize) Parameters Type Name Description byte[] array The input to compute the hash code for. int ibStart The offset into the byte array from which to begin using data. int cbSize The number of bytes in the byte array to use as data. Overrides HashAlgorithm.HashCore(byte[], int, int) | Edit this page View Source HashCore(ReadOnlySpan) Routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(ReadOnlySpan source) Parameters Type Name Description ReadOnlySpan source The input to compute the hash code for. Overrides HashAlgorithm.HashCore(ReadOnlySpan) | Edit this page View Source HashFinal() When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm. Declaration protected override byte[] HashFinal() Returns Type Description byte[] The computed hash code. Overrides HashAlgorithm.HashFinal() | Edit this page View Source Initialize() Resets the hash algorithm to its initial state. Declaration public override void Initialize() Overrides HashAlgorithm.Initialize() | Edit this page View Source TryHashFinal(Span, out int) Attempts to finalize the hash computation after the last data is processed by the hash algorithm. Declaration protected override bool TryHashFinal(Span destination, out int bytesWritten) Parameters Type Name Description Span destination The buffer to receive the hash value. int bytesWritten When this method returns, the total number of bytes written into destination. This parameter is treated as uninitialized. Returns Type Description bool true if destination is long enough to receive the hash value; otherwise, false. Overrides HashAlgorithm.TryHashFinal(Span, out int) Implements ICryptoTransform IDisposable"
    +    "keywords": "Class BouncyCastleHmacAlgorithm Bouncy Castle HMAC algorithm Inheritance object HashAlgorithm KeyedHashAlgorithm BouncyCastleHmacAlgorithm MacBcHmacSha3_256Algorithm.HMACSHA3_256 MacBcHmacSha3_384Algorithm.HMACSHA3_384 MacBcHmacSha3_512Algorithm.HMACSHA3_512 Implements ICryptoTransform IDisposable Inherited Members KeyedHashAlgorithm.KeyValue KeyedHashAlgorithm.Create() KeyedHashAlgorithm.Create(string) KeyedHashAlgorithm.Key HashAlgorithm.HashSizeValue HashAlgorithm.HashValue HashAlgorithm.State HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.HashSize HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public class BouncyCastleHmacAlgorithm : KeyedHashAlgorithm, ICryptoTransform, IDisposable Remarks Constructor Constructors | Edit this page View Source BouncyCastleHmacAlgorithm(IMac) Bouncy Castle HMAC algorithm Declaration public BouncyCastleHmacAlgorithm(IMac mac) Parameters Type Name Description IMac mac MAC Remarks Constructor Fields | Edit this page View Source Mac MAC Declaration protected readonly IMac Mac Field Value Type Description IMac Methods | Edit this page View Source Dispose(bool) Releases the unmanaged resources used by the KeyedHashAlgorithm and optionally releases the managed resources. Declaration protected override void Dispose(bool disposing) Parameters Type Name Description bool disposing true to release both managed and unmanaged resources; false to release only unmanaged resources. Overrides KeyedHashAlgorithm.Dispose(bool) | Edit this page View Source HashCore(byte[], int, int) When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(byte[] array, int ibStart, int cbSize) Parameters Type Name Description byte[] array The input to compute the hash code for. int ibStart The offset into the byte array from which to begin using data. int cbSize The number of bytes in the byte array to use as data. Overrides HashAlgorithm.HashCore(byte[], int, int) | Edit this page View Source HashCore(ReadOnlySpan) Routes data written to the object into the hash algorithm for computing the hash. Declaration protected override void HashCore(ReadOnlySpan source) Parameters Type Name Description ReadOnlySpan source The input to compute the hash code for. Overrides HashAlgorithm.HashCore(ReadOnlySpan) | Edit this page View Source HashFinal() When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm. Declaration protected override byte[] HashFinal() Returns Type Description byte[] The computed hash code. Overrides HashAlgorithm.HashFinal() | Edit this page View Source Initialize() Resets the hash algorithm to its initial state. Declaration public override void Initialize() Overrides HashAlgorithm.Initialize() | Edit this page View Source TryHashFinal(Span, out int) Attempts to finalize the hash computation after the last data is processed by the hash algorithm. Declaration protected override bool TryHashFinal(Span destination, out int bytesWritten) Parameters Type Name Description Span destination The buffer to receive the hash value. int bytesWritten When this method returns, the total number of bytes written into destination. This parameter is treated as uninitialized. Returns Type Description bool true if destination is long enough to receive the hash value; otherwise, false. Overrides HashAlgorithm.TryHashFinal(Span, out int) Implements ICryptoTransform IDisposable"
       },
       "api/wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase-1.html": {
         "href": "api/wan24.Crypto.BC.BouncyCastleHmacAlgorithmBase-1.html",
    @@ -529,16 +529,31 @@
         "title": "Class Extensions | wan24-Crypto-BC",
         "keywords": "Class Extensions Extension methods Inheritance object Extensions Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public static class Extensions Methods | Edit this page View Source GetState(VmpcRandomGenerator) Get the internal state (you shouldn't add seed during this method is being executed!) Declaration public static byte[] GetState(this VmpcRandomGenerator rng) Parameters Type Name Description VmpcRandomGenerator rng RNG Returns Type Description byte[] Internal state | Edit this page View Source RestoreState(VmpcRandomGenerator, ReadOnlySpan) Restore the internal state (you shouldn't add seed during this method is being executed!) Declaration public static void RestoreState(this VmpcRandomGenerator rng, ReadOnlySpan state) Parameters Type Name Description VmpcRandomGenerator rng RNG ReadOnlySpan state Stored internal state | Edit this page View Source ToX25519PrivateKey(Ed25519PrivateKeyParameters) Convert to Org.BouncyCastle.Crypto.Parameters.X25519PrivateKeyParameters Declaration public static X25519PrivateKeyParameters ToX25519PrivateKey(this Ed25519PrivateKeyParameters key) Parameters Type Name Description Ed25519PrivateKeyParameters key Private key Returns Type Description X25519PrivateKeyParameters X25519 private key | Edit this page View Source ToX448PrivateKey(Ed448PrivateKeyParameters) Convert to Org.BouncyCastle.Crypto.Parameters.X448PrivateKeyParameters Declaration public static X448PrivateKeyParameters ToX448PrivateKey(this Ed448PrivateKeyParameters key) Parameters Type Name Description Ed448PrivateKeyParameters key Private key Returns Type Description X448PrivateKeyParameters X448 private key"
       },
    +  "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html": {
    +    "href": "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html",
    +    "title": "Class HashBcSha3_256Algorithm.SHA3_256 | wan24-Crypto-BC",
    +    "keywords": "Class HashBcSha3_256Algorithm.SHA3_256 SHA3-256 Inheritance object HashAlgorithm BouncyCastleHashAlgorithm HashBcSha3_256Algorithm.SHA3_256 Implements ICryptoTransform IDisposable Inherited Members BouncyCastleHashAlgorithm.HashSize BouncyCastleHashAlgorithm.Initialize() HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Create() HashAlgorithm.Create(string) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class HashBcSha3_256Algorithm.SHA3_256 : BouncyCastleHashAlgorithm, ICryptoTransform, IDisposable Constructors | Edit this page View Source SHA3_256() SHA3-256 Declaration public SHA3_256() Methods | Edit this page View Source Register() Register to the CryptoConfig Declaration public static void Register() Implements ICryptoTransform IDisposable"
    +  },
       "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.html": {
         "href": "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.html",
         "title": "Class HashBcSha3_256Algorithm | wan24-Crypto-BC",
         "keywords": "Class HashBcSha3_256Algorithm SHA3-256 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) Inheritance object CryptoAlgorithmBase HashAlgorithmBase BouncyCastleHashAlgorithmBase HashBcSha3_256Algorithm Implements ICryptoAlgorithm IStatusProvider IEquatable IEquatable IEquatable> IEquatable Inherited Members BouncyCastleHashAlgorithmBase.Instance BouncyCastleHashAlgorithmBase.Register() HashAlgorithmBase.EnsureDefaultOptions(CryptoOptions) HashAlgorithmBase.GetHashAlgorithm(CryptoOptions) HashAlgorithmBase.GetHashStream(Stream, bool, CryptoOptions) HashAlgorithmBase.Hash(byte[], CryptoOptions) HashAlgorithmBase.Hash(ReadOnlySpan, CryptoOptions) HashAlgorithmBase.Hash(ReadOnlySpan, Span, CryptoOptions) HashAlgorithmBase.Hash(Stream, CryptoOptions) HashAlgorithmBase.HashAsync(Stream, CryptoOptions, CancellationToken) HashAlgorithmBase.ToString() HashAlgorithmBase.GetHashCode() HashAlgorithmBase.Equals(object) HashAlgorithmBase.Equals(CryptoAlgorithmBase) HashAlgorithmBase.Equals(HashAlgorithmBase) HashAlgorithmBase.$() HashAlgorithmBase.DefaultOptions HashAlgorithmBase.State CryptoAlgorithmBase.EnsureAllowed(in bool) CryptoAlgorithmBase.Name CryptoAlgorithmBase.Value CryptoAlgorithmBase.UsesTpm CryptoAlgorithmBase.IsSupported object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed record HashBcSha3_256Algorithm : BouncyCastleHashAlgorithmBase, ICryptoAlgorithm, IStatusProvider, IEquatable, IEquatable, IEquatable>, IEquatable Fields | Edit this page View Source ALGORITHM_NAME Algorithm name Declaration public const string ALGORITHM_NAME = \"SHA3-256\" Field Value Type Description string | Edit this page View Source ALGORITHM_VALUE Algorithm value Declaration public const int ALGORITHM_VALUE = 5 Field Value Type Description int | Edit this page View Source DISPLAY_NAME Display name Declaration public const string DISPLAY_NAME = \"SHA3-256\" Field Value Type Description string | Edit this page View Source HASH_LENGTH Hash length in bytes Declaration public const int HASH_LENGTH = 32 Field Value Type Description int Properties | Edit this page View Source DisplayName Display name Declaration public override string DisplayName { get; } Property Value Type Description string Overrides wan24.Crypto.CryptoAlgorithmBase.DisplayName | Edit this page View Source HashLength Hash length in bytes Declaration public override int HashLength { get; } Property Value Type Description int Overrides wan24.Crypto.HashAlgorithmBase.HashLength | Edit this page View Source IsPostQuantum Is a post quantum algorithm (\"post quantum-safe\")? Declaration public override bool IsPostQuantum { get; } Property Value Type Description bool Overrides wan24.Crypto.CryptoAlgorithmBase.IsPostQuantum Methods | Edit this page View Source GetHashAlgorithmInt(CryptoOptions?) Get the hash algorithm Declaration protected override HashAlgorithm GetHashAlgorithmInt(CryptoOptions? options) Parameters Type Name Description CryptoOptions options Options Returns Type Description HashAlgorithm Algorithm Overrides wan24.Crypto.HashAlgorithmBase.GetHashAlgorithmInt(wan24.Crypto.CryptoOptions) Implements wan24.Crypto.ICryptoAlgorithm wan24.Core.IStatusProvider IEquatable IEquatable IEquatable IEquatable"
       },
    +  "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html": {
    +    "href": "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html",
    +    "title": "Class HashBcSha3_384Algorithm.SHA3_384 | wan24-Crypto-BC",
    +    "keywords": "Class HashBcSha3_384Algorithm.SHA3_384 SHA3-384 Inheritance object HashAlgorithm BouncyCastleHashAlgorithm HashBcSha3_384Algorithm.SHA3_384 Implements ICryptoTransform IDisposable Inherited Members BouncyCastleHashAlgorithm.HashSize BouncyCastleHashAlgorithm.Initialize() HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Create() HashAlgorithm.Create(string) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class HashBcSha3_384Algorithm.SHA3_384 : BouncyCastleHashAlgorithm, ICryptoTransform, IDisposable Constructors | Edit this page View Source SHA3_384() SHA3-384 Declaration public SHA3_384() Methods | Edit this page View Source Register() Register to the CryptoConfig Declaration public static void Register() Implements ICryptoTransform IDisposable"
    +  },
       "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.html": {
         "href": "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.html",
         "title": "Class HashBcSha3_384Algorithm | wan24-Crypto-BC",
         "keywords": "Class HashBcSha3_384Algorithm SHA3-384 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) Inheritance object CryptoAlgorithmBase HashAlgorithmBase BouncyCastleHashAlgorithmBase HashBcSha3_384Algorithm Implements ICryptoAlgorithm IStatusProvider IEquatable IEquatable IEquatable> IEquatable Inherited Members BouncyCastleHashAlgorithmBase.Instance BouncyCastleHashAlgorithmBase.Register() HashAlgorithmBase.EnsureDefaultOptions(CryptoOptions) HashAlgorithmBase.GetHashAlgorithm(CryptoOptions) HashAlgorithmBase.GetHashStream(Stream, bool, CryptoOptions) HashAlgorithmBase.Hash(byte[], CryptoOptions) HashAlgorithmBase.Hash(ReadOnlySpan, CryptoOptions) HashAlgorithmBase.Hash(ReadOnlySpan, Span, CryptoOptions) HashAlgorithmBase.Hash(Stream, CryptoOptions) HashAlgorithmBase.HashAsync(Stream, CryptoOptions, CancellationToken) HashAlgorithmBase.ToString() HashAlgorithmBase.GetHashCode() HashAlgorithmBase.Equals(object) HashAlgorithmBase.Equals(CryptoAlgorithmBase) HashAlgorithmBase.Equals(HashAlgorithmBase) HashAlgorithmBase.$() HashAlgorithmBase.DefaultOptions HashAlgorithmBase.State CryptoAlgorithmBase.EnsureAllowed(in bool) CryptoAlgorithmBase.Name CryptoAlgorithmBase.Value CryptoAlgorithmBase.UsesTpm CryptoAlgorithmBase.IsSupported object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed record HashBcSha3_384Algorithm : BouncyCastleHashAlgorithmBase, ICryptoAlgorithm, IStatusProvider, IEquatable, IEquatable, IEquatable>, IEquatable Fields | Edit this page View Source ALGORITHM_NAME Algorithm name Declaration public const string ALGORITHM_NAME = \"SHA3-384\" Field Value Type Description string | Edit this page View Source ALGORITHM_VALUE Algorithm value Declaration public const int ALGORITHM_VALUE = 6 Field Value Type Description int | Edit this page View Source DISPLAY_NAME Display name Declaration public const string DISPLAY_NAME = \"SHA3-384\" Field Value Type Description string | Edit this page View Source HASH_LENGTH Hash length in bytes Declaration public const int HASH_LENGTH = 48 Field Value Type Description int Properties | Edit this page View Source DisplayName Display name Declaration public override string DisplayName { get; } Property Value Type Description string Overrides wan24.Crypto.CryptoAlgorithmBase.DisplayName | Edit this page View Source HashLength Hash length in bytes Declaration public override int HashLength { get; } Property Value Type Description int Overrides wan24.Crypto.HashAlgorithmBase.HashLength | Edit this page View Source IsPostQuantum Is a post quantum algorithm (\"post quantum-safe\")? Declaration public override bool IsPostQuantum { get; } Property Value Type Description bool Overrides wan24.Crypto.CryptoAlgorithmBase.IsPostQuantum Methods | Edit this page View Source GetHashAlgorithmInt(CryptoOptions?) Get the hash algorithm Declaration protected override HashAlgorithm GetHashAlgorithmInt(CryptoOptions? options) Parameters Type Name Description CryptoOptions options Options Returns Type Description HashAlgorithm Algorithm Overrides wan24.Crypto.HashAlgorithmBase.GetHashAlgorithmInt(wan24.Crypto.CryptoOptions) Implements wan24.Crypto.ICryptoAlgorithm wan24.Core.IStatusProvider IEquatable IEquatable IEquatable IEquatable"
       },
    +  "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html": {
    +    "href": "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html",
    +    "title": "Class HashBcSha3_512Algorithm.SHA3_512 | wan24-Crypto-BC",
    +    "keywords": "Class HashBcSha3_512Algorithm.SHA3_512 SHA3-512 Inheritance object HashAlgorithm BouncyCastleHashAlgorithm HashBcSha3_512Algorithm.SHA3_512 Implements ICryptoTransform IDisposable Inherited Members BouncyCastleHashAlgorithm.HashSize BouncyCastleHashAlgorithm.Initialize() HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Create() HashAlgorithm.Create(string) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class HashBcSha3_512Algorithm.SHA3_512 : BouncyCastleHashAlgorithm, ICryptoTransform, IDisposable Constructors | Edit this page View Source SHA3_512() SHA3-512 Declaration public SHA3_512() Methods | Edit this page View Source Register() Register to the CryptoConfig Declaration public static void Register() Implements ICryptoTransform IDisposable"
    +  },
       "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.html": {
         "href": "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.html",
         "title": "Class HashBcSha3_512Algorithm | wan24-Crypto-BC",
    @@ -559,16 +574,31 @@
         "title": "Interface IBouncyCastleRng | wan24-Crypto-BC",
         "keywords": "Interface IBouncyCastleRng Interface for a seedable Bouncy Castle supporting RNG Inherited Members IRandomGenerator.AddSeedMaterial(byte[]) IRandomGenerator.AddSeedMaterial(ReadOnlySpan) IRandomGenerator.AddSeedMaterial(long) IRandomGenerator.NextBytes(byte[]) IRandomGenerator.NextBytes(byte[], int, int) IRandomGenerator.NextBytes(Span) IRng.GetBytes(in int) IRng.GetBytesAsync(int, CancellationToken) IRng.FillBytes(in Span) IRng.FillBytesAsync(Memory, CancellationToken) ISeedConsumer.AddSeed(ReadOnlySpan) ISeedConsumer.AddSeedAsync(ReadOnlyMemory, CancellationToken) Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public interface IBouncyCastleRng : IRandomGenerator, ISeedableRng, IRng, ISeedConsumer"
       },
    +  "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html": {
    +    "href": "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html",
    +    "title": "Class MacBcHmacSha3_256Algorithm.HMACSHA3_256 | wan24-Crypto-BC",
    +    "keywords": "Class MacBcHmacSha3_256Algorithm.HMACSHA3_256 HMACSHA3-256 Inheritance object HashAlgorithm KeyedHashAlgorithm BouncyCastleHmacAlgorithm MacBcHmacSha3_256Algorithm.HMACSHA3_256 Implements ICryptoTransform IDisposable Inherited Members BouncyCastleHmacAlgorithm.Initialize() KeyedHashAlgorithm.Create() KeyedHashAlgorithm.Create(string) KeyedHashAlgorithm.Key HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.HashSize HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class MacBcHmacSha3_256Algorithm.HMACSHA3_256 : BouncyCastleHmacAlgorithm, ICryptoTransform, IDisposable Constructors | Edit this page View Source HMACSHA3_256(byte[]) Constructor Declaration public HMACSHA3_256(byte[] pwd) Parameters Type Name Description byte[] pwd Password Methods | Edit this page View Source Register() Register to the CryptoConfig Declaration public static void Register() Implements ICryptoTransform IDisposable"
    +  },
       "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html": {
         "href": "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html",
         "title": "Class MacBcHmacSha3_256Algorithm | wan24-Crypto-BC",
         "keywords": "Class MacBcHmacSha3_256Algorithm HMAC-SHA3-256 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) Inheritance object CryptoAlgorithmBase MacAlgorithmBase BouncyCastleHmacAlgorithmBase MacBcHmacSha3_256Algorithm Implements ICryptoAlgorithm IStatusProvider IEquatable IEquatable IEquatable> IEquatable Inherited Members BouncyCastleHmacAlgorithmBase.Instance BouncyCastleHmacAlgorithmBase.Register() MacAlgorithmBase.EnsureDefaultOptions(CryptoOptions) MacAlgorithmBase.GetMacAlgorithm(byte[], CryptoOptions) MacAlgorithmBase.GetMacStream(byte[], Stream, bool, CryptoOptions) MacAlgorithmBase.Mac(ReadOnlySpan, byte[], CryptoOptions) MacAlgorithmBase.Mac(ReadOnlySpan, byte[], Span, CryptoOptions) MacAlgorithmBase.Mac(Stream, byte[], CryptoOptions) MacAlgorithmBase.MacAsync(Stream, byte[], CryptoOptions, CancellationToken) MacAlgorithmBase.ToString() MacAlgorithmBase.GetHashCode() MacAlgorithmBase.Equals(object) MacAlgorithmBase.Equals(CryptoAlgorithmBase) MacAlgorithmBase.Equals(MacAlgorithmBase) MacAlgorithmBase.$() MacAlgorithmBase.DefaultOptions MacAlgorithmBase.State CryptoAlgorithmBase.EnsureAllowed(in bool) CryptoAlgorithmBase.Name CryptoAlgorithmBase.Value CryptoAlgorithmBase.UsesTpm CryptoAlgorithmBase.IsSupported object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed record MacBcHmacSha3_256Algorithm : BouncyCastleHmacAlgorithmBase, ICryptoAlgorithm, IStatusProvider, IEquatable, IEquatable, IEquatable>, IEquatable Fields | Edit this page View Source ALGORITHM_NAME Algorithm name Declaration public const string ALGORITHM_NAME = \"HMAC-SHA3-256\" Field Value Type Description string | Edit this page View Source ALGORITHM_VALUE Algorithm value Declaration public const int ALGORITHM_VALUE = 4 Field Value Type Description int | Edit this page View Source DISPLAY_NAME Display name Declaration public const string DISPLAY_NAME = \"HMAC SHA3-256\" Field Value Type Description string | Edit this page View Source MAC_LENGTH MAC length in bytes Declaration public const int MAC_LENGTH = 32 Field Value Type Description int Properties | Edit this page View Source DisplayName Display name Declaration public override string DisplayName { get; } Property Value Type Description string Overrides wan24.Crypto.CryptoAlgorithmBase.DisplayName | Edit this page View Source IsPostQuantum Is a post quantum algorithm (\"post quantum-safe\")? Declaration public override bool IsPostQuantum { get; } Property Value Type Description bool Overrides wan24.Crypto.CryptoAlgorithmBase.IsPostQuantum | Edit this page View Source MacLength MAC length in bytes Declaration public override int MacLength { get; } Property Value Type Description int Overrides wan24.Crypto.MacAlgorithmBase.MacLength Methods | Edit this page View Source GetMacAlgorithmInt(byte[], CryptoOptions?) Get the MAC algorithm Declaration protected override KeyedHashAlgorithm GetMacAlgorithmInt(byte[] pwd, CryptoOptions? options) Parameters Type Name Description byte[] pwd Password CryptoOptions options Options Returns Type Description KeyedHashAlgorithm Algorithm Overrides MacAlgorithmBase.GetMacAlgorithmInt(byte[], CryptoOptions) Implements wan24.Crypto.ICryptoAlgorithm wan24.Core.IStatusProvider IEquatable IEquatable IEquatable IEquatable"
       },
    +  "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html": {
    +    "href": "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html",
    +    "title": "Class MacBcHmacSha3_384Algorithm.HMACSHA3_384 | wan24-Crypto-BC",
    +    "keywords": "Class MacBcHmacSha3_384Algorithm.HMACSHA3_384 HMACSHA3-384 Inheritance object HashAlgorithm KeyedHashAlgorithm BouncyCastleHmacAlgorithm MacBcHmacSha3_384Algorithm.HMACSHA3_384 Implements ICryptoTransform IDisposable Inherited Members BouncyCastleHmacAlgorithm.Initialize() KeyedHashAlgorithm.Create() KeyedHashAlgorithm.Create(string) KeyedHashAlgorithm.Key HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.HashSize HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class MacBcHmacSha3_384Algorithm.HMACSHA3_384 : BouncyCastleHmacAlgorithm, ICryptoTransform, IDisposable Constructors | Edit this page View Source HMACSHA3_384(byte[]) Constructor Declaration public HMACSHA3_384(byte[] pwd) Parameters Type Name Description byte[] pwd Password Methods | Edit this page View Source Register() Register to the CryptoConfig Declaration public static void Register() Implements ICryptoTransform IDisposable"
    +  },
       "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html": {
         "href": "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html",
         "title": "Class MacBcHmacSha3_384Algorithm | wan24-Crypto-BC",
         "keywords": "Class MacBcHmacSha3_384Algorithm HMAC-SHA3-384 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) Inheritance object CryptoAlgorithmBase MacAlgorithmBase BouncyCastleHmacAlgorithmBase MacBcHmacSha3_384Algorithm Implements ICryptoAlgorithm IStatusProvider IEquatable IEquatable IEquatable> IEquatable Inherited Members BouncyCastleHmacAlgorithmBase.Instance BouncyCastleHmacAlgorithmBase.Register() MacAlgorithmBase.EnsureDefaultOptions(CryptoOptions) MacAlgorithmBase.GetMacAlgorithm(byte[], CryptoOptions) MacAlgorithmBase.GetMacStream(byte[], Stream, bool, CryptoOptions) MacAlgorithmBase.Mac(ReadOnlySpan, byte[], CryptoOptions) MacAlgorithmBase.Mac(ReadOnlySpan, byte[], Span, CryptoOptions) MacAlgorithmBase.Mac(Stream, byte[], CryptoOptions) MacAlgorithmBase.MacAsync(Stream, byte[], CryptoOptions, CancellationToken) MacAlgorithmBase.ToString() MacAlgorithmBase.GetHashCode() MacAlgorithmBase.Equals(object) MacAlgorithmBase.Equals(CryptoAlgorithmBase) MacAlgorithmBase.Equals(MacAlgorithmBase) MacAlgorithmBase.$() MacAlgorithmBase.DefaultOptions MacAlgorithmBase.State CryptoAlgorithmBase.EnsureAllowed(in bool) CryptoAlgorithmBase.Name CryptoAlgorithmBase.Value CryptoAlgorithmBase.UsesTpm CryptoAlgorithmBase.IsSupported object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed record MacBcHmacSha3_384Algorithm : BouncyCastleHmacAlgorithmBase, ICryptoAlgorithm, IStatusProvider, IEquatable, IEquatable, IEquatable>, IEquatable Fields | Edit this page View Source ALGORITHM_NAME Algorithm name Declaration public const string ALGORITHM_NAME = \"HMAC-SHA3-384\" Field Value Type Description string | Edit this page View Source ALGORITHM_VALUE Algorithm value Declaration public const int ALGORITHM_VALUE = 5 Field Value Type Description int | Edit this page View Source DISPLAY_NAME Display name Declaration public const string DISPLAY_NAME = \"HMAC SHA3-384\" Field Value Type Description string | Edit this page View Source MAC_LENGTH MAC length in bytes Declaration public const int MAC_LENGTH = 48 Field Value Type Description int Properties | Edit this page View Source DisplayName Display name Declaration public override string DisplayName { get; } Property Value Type Description string Overrides wan24.Crypto.CryptoAlgorithmBase.DisplayName | Edit this page View Source IsPostQuantum Is a post quantum algorithm (\"post quantum-safe\")? Declaration public override bool IsPostQuantum { get; } Property Value Type Description bool Overrides wan24.Crypto.CryptoAlgorithmBase.IsPostQuantum | Edit this page View Source MacLength MAC length in bytes Declaration public override int MacLength { get; } Property Value Type Description int Overrides wan24.Crypto.MacAlgorithmBase.MacLength Methods | Edit this page View Source GetMacAlgorithmInt(byte[], CryptoOptions?) Get the MAC algorithm Declaration protected override KeyedHashAlgorithm GetMacAlgorithmInt(byte[] pwd, CryptoOptions? options) Parameters Type Name Description byte[] pwd Password CryptoOptions options Options Returns Type Description KeyedHashAlgorithm Algorithm Overrides MacAlgorithmBase.GetMacAlgorithmInt(byte[], CryptoOptions) Implements wan24.Crypto.ICryptoAlgorithm wan24.Core.IStatusProvider IEquatable IEquatable IEquatable IEquatable"
       },
    +  "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html": {
    +    "href": "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html",
    +    "title": "Class MacBcHmacSha3_512Algorithm.HMACSHA3_512 | wan24-Crypto-BC",
    +    "keywords": "Class MacBcHmacSha3_512Algorithm.HMACSHA3_512 HMACSHA3-512 Inheritance object HashAlgorithm KeyedHashAlgorithm BouncyCastleHmacAlgorithm MacBcHmacSha3_512Algorithm.HMACSHA3_512 Implements ICryptoTransform IDisposable Inherited Members BouncyCastleHmacAlgorithm.Initialize() KeyedHashAlgorithm.Create() KeyedHashAlgorithm.Create(string) KeyedHashAlgorithm.Key HashAlgorithm.Clear() HashAlgorithm.ComputeHash(byte[]) HashAlgorithm.ComputeHash(byte[], int, int) HashAlgorithm.ComputeHash(Stream) HashAlgorithm.ComputeHashAsync(Stream, CancellationToken) HashAlgorithm.Dispose() HashAlgorithm.TransformBlock(byte[], int, int, byte[], int) HashAlgorithm.TransformFinalBlock(byte[], int, int) HashAlgorithm.TryComputeHash(ReadOnlySpan, Span, out int) HashAlgorithm.CanReuseTransform HashAlgorithm.CanTransformMultipleBlocks HashAlgorithm.Hash HashAlgorithm.HashSize HashAlgorithm.InputBlockSize HashAlgorithm.OutputBlockSize object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Namespace: wan24.Crypto.BC Assembly: wan24CryptoBC.dll Syntax public sealed class MacBcHmacSha3_512Algorithm.HMACSHA3_512 : BouncyCastleHmacAlgorithm, ICryptoTransform, IDisposable Constructors | Edit this page View Source HMACSHA3_512(byte[]) Constructor Declaration public HMACSHA3_512(byte[] pwd) Parameters Type Name Description byte[] pwd Password Methods | Edit this page View Source Register() Register to the CryptoConfig Declaration public static void Register() Implements ICryptoTransform IDisposable"
    +  },
       "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html": {
         "href": "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html",
         "title": "Class MacBcHmacSha3_512Algorithm | wan24-Crypto-BC",
    @@ -602,7 +632,7 @@
       "api/wan24.Crypto.BC.html": {
         "href": "api/wan24.Crypto.BC.html",
         "title": "Namespace wan24.Crypto.BC | wan24-Crypto-BC",
    -    "keywords": "Namespace wan24.Crypto.BC Classes AsymmetricBcEcDiffieHellmanAlgorithm EC Diffie Hellman asymmetric algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) AsymmetricBcEcDiffieHellmanPrivateKey EC Diffie Hellman asymmetric private key AsymmetricBcEcDiffieHellmanPublicKey EC Diffie Hellman asymmetric public key AsymmetricBcEcDsaAlgorithm EC DSA asymmetric algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) AsymmetricBcEcDsaPrivateKey Asymmetric EC DSA private key AsymmetricBcEcDsaPublicKey Asymmetric EC DSA public key AsymmetricBikeAlgorithm BIKE asymmetric algorithm AsymmetricBikeHelper BIKE asymmetric algorithm helper AsymmetricBikePrivateKey BIKE asymmetric private key AsymmetricBikePublicKey BIKE asymmetric public key AsymmetricDilithiumAlgorithm CRYSTALS-Dilithium asymmetric algorithm AsymmetricDilithiumHelper CRYSTALS-Dilithium helper AsymmetricDilithiumPrivateKey CRYSTALS-Dilithium asymmetric private key AsymmetricDilithiumPublicKey CRYSTALS-Dilithium asymmetric public key AsymmetricEd25519Algorithm Ed25519 asymmetric algorithm (128 bit security) AsymmetricEd25519PrivateKey Ed25519 asymmetric private key AsymmetricEd25519PublicKey Ed25519 asymmetric public key AsymmetricEd448Algorithm Ed448 asymmetric algorithm (224 bit security) AsymmetricEd448PrivateKey Ed448 asymmetric private key AsymmetricEd448PublicKey Ed448 asymmetric public key AsymmetricFalconAlgorithm FALCON asymmetric algorithm AsymmetricFalconHelper Asymmetric FALCON algorithm helper AsymmetricFalconPrivateKey Asymmetric FALCON private key AsymmetricFalconPublicKey Asymmetric FALCON public key AsymmetricFrodoKemAlgorithm FrodoKEM asymmetric algorithm AsymmetricFrodoKemHelper FrodoKEM helper AsymmetricFrodoKemPrivateKey FrodoKEM asymmetric private key AsymmetricFrodoKemPublicKey FrodoKEM asymmetric public key AsymmetricHqcAlgorithm HQC asymmetric algorithm AsymmetricHqcHelper HQC asymmetric algorithm helper AsymmetricHqcPrivateKey HQC asymmetric private key AsymmetricHqcPublicKey HQC asymmetric public key AsymmetricKyberAlgorithm CRYSTALS-Kyber asymmetric algorithm AsymmetricKyberHelper CRYSTALS-Kyber asymmetric algorithm helper AsymmetricKyberPrivateKey CRYSTALS-Kyber asymmetric private key AsymmetricKyberPublicKey CRYSTALS-Kyber asymmetric public key AsymmetricNtruEncryptAlgorithm NTRUEncrypt asymmetric algorithm AsymmetricNtruEncryptPrivateKey NTRUEncrypt asymmetric private key AsymmetricNtruEncryptPublicKey NTRUEncrypt asymmetric public key AsymmetricNtruHelper NTRU helper AsymmetricPicnicAlgorithm CRYSTALS-Dilithium asymmetric algorithm AsymmetricPicnicHelper Picnic helper AsymmetricPicnicPrivateKey Picnic asymmetric private key AsymmetricPicnicPublicKey Picnic asymmetric public key AsymmetricSNtruPrimeAlgorithm Streamlined NTRU Prime asymmetric algorithm AsymmetricSNtruPrimeHelper Streamlined NTRU Prime helper AsymmetricSNtruPrimePrivateKey Streamlined NTRU Prime asymmetric private key AsymmetricSNtruPrimePublicKey Streamlined NTRU Prime asymmetric public key AsymmetricSphincsPlusAlgorithm SPHINCS+ asymmetric algorithm AsymmetricSphincsPlusHelper SPHINCS+ asymmetric algorithm helper AsymmetricSphincsPlusPrivateKey SPHINCS+ asymmetric private key AsymmetricSphincsPlusPublicKey SPHINCS+ asymmetric public key AsymmetricX25519Algorithm X25519 asymmetric algorithm (128 bit security)) AsymmetricX25519PrivateKey X25519 asymmetric private key AsymmetricX25519PublicKey X25519 asymmetric public key AsymmetricX448Algorithm X448 asymmetric algorithm (224 bit security)) AsymmetricX448PrivateKey X448 asymmetric private key AsymmetricX448PublicKey X448 asymmetric public key AsymmetricXEd25519Algorithm XEd25519 asymmetric algorithm (converts the used Ed25519 private key to a X25519 private key for key exchange, 128 bit security) AsymmetricXEd25519PrivateKey XEd25519 asymmetric private key AsymmetricXEd25519PublicKey XEd25519 asymmetric public key AsymmetricXEd448Algorithm XEd448 asymmetric algorithm (converts the used Ed448 private key to a X448 private key for key exchange; 224 bit security) AsymmetricXEd448PrivateKey XEd448 asymmetric private key AsymmetricXEd448PublicKey XEd448 asymmetric public key BcEllipticCurves Bouncy Castle elliptic curves Bootstrap Bootstrapper BouncyCastle Bouncy Castle helper BouncyCastleAeadCipherAlgorithmBase Base class for a Bouncy Castle AEAD stream cipher BouncyCastleAsymmetricAlgorithmBase Base class for a Bouncy Castle asymmetric algorithm BouncyCastleAsymmetricAlgorithmBase Base class for a Bouncy Castle asymmetric algorithm BouncyCastleAsymmetricNonPqcPrivateKeyBase Base class for a Bouncy Castle asymmetric non-PQC private key BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2 Base class for a Bouncy Castle asymmetric non-PQC private signature key (which requires a context constructor parameter) BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase Base class for a Bouncy Castle asymmetric non-PQC private signature key BouncyCastleAsymmetricNonPqcPublicKeyBase Base class fo a Bouncy Castle asymmetric non-PQC public key BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2 Base class for a Bouncy Castle asymmetric non-PQC public signature key (which requires a context constructor parameter) BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase Base class for a Bouncy Castle asymmetric non-PQC public signature key BouncyCastleAsymmetricPqcPrivateKeyBase Base class for a Bouncy Castle asymmetric PQC private key BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase Base class for a Bouncy Castle asymmetric PQC private key exchange key BouncyCastleAsymmetricPqcPrivateSignatureKeyBase Base class for a Bouncy Castle asymmetric PQC private signature key BouncyCastleAsymmetricPqcPublicKeyBase Base class fo a Bouncy Castle asymmetric PQC public key BouncyCastleAsymmetricPqcPublicSignatureKeyBase Base class for a Bouncy Castle asymmetric PQC public signature key BouncyCastleAsymmetricPrivateKeyBase Base class for a Bouncy Castle asymmetric private key BouncyCastleAsymmetricPublicKeyBase Base class fo a Bouncy Castle asymmetric public key BouncyCastleBlockCipherAlgorithmBase Base class for a Bouncy Castle block cipher BouncyCastleBufferedCipherAlgorithmBase Base class for a Bouncy Castle buffered block cipher BouncyCastleCipherAlgorithmBase Base class for a Bouncy Castle cipher BouncyCastleCryptoTransform Bouncy Castle crypto transform BouncyCastleHashAlgorithm Bouncy Castle hash algorithm BouncyCastleHashAlgorithmBase Base class for a Bouncy Castle hash algorithm BouncyCastleHmacAlgorithm Bouncy Castle HMAC algorithm BouncyCastleHmacAlgorithmBase Base class for a Bouncy Castle MAC algorithm BouncyCastleRandomGenerator Random number generator for Bouncy Castle, which adopts wan24.Crypto.RND BouncyCastleRngWrapper Bouncy Castle RNG wrapper for wan24-Crypto BouncyCastleStreamCipherAlgorithmBase Base class for a Bouncy Castle stream cipher ChaCha20Rng ChaCha20 CSRNG DisposableRngWrapper Bouncy Castle disposable RNG wrapper for wan24-Crypto EncryptionAes256GcmAlgorithm AES-256-GCM AEAD symmetric encryption algorithm (using 128 bit MAC) EncryptionBcAes256CbcAlgorithm AES-256-CBC symmetric encryption algorithm (using ISO10126 padding; may be used as replacement, if the .NET algorithm isn't available on the current platform) EncryptionChaCha20Algorithm ChaCha20 symmetric encryption algorithm (using 256 bit key) EncryptionSerpent256CbcAlgorithm Serpent 256 CBC symmetric encryption algorithm (using ISO10126 padding) EncryptionSerpent256GcmAlgorithm Serpent 256 GCM symmetric encryption algorithm (using 128 bit MAC) EncryptionTwofish256CbcAlgorithm Twofish 256 CBC symmetric encryption algorithm (using ISO10126 padding) EncryptionTwofish256GcmAlgorithm Twofish 256 GCM symmetric encryption algorithm (using 128 bit MAC) EncryptionXSalsa20Algorithm XSalsa20 symmetric encryption algorithm (using 256 bit key) Extensions Extension methods HashBcSha3_256Algorithm SHA3-256 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcSha3_384Algorithm SHA3-384 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcSha3_512Algorithm SHA3-512 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcShake128Algorithm Shake128 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcShake256Algorithm Shake256 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_256Algorithm HMAC-SHA3-256 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_384Algorithm HMAC-SHA3-384 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_512Algorithm HMAC-SHA3-512 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) RandomDataProvider Random data provider RandomDataProvider.SeedEventArgs OnSeed event arguments StreamCipherRng Stream cipher CSRNG XSalsa20Rng XSalsa20 CSRNG Interfaces IBouncyCastleRng Interface for a seedable Bouncy Castle supporting RNG Delegates RandomDataProvider.Seed_Delegate Delegate for a seed handler"
    +    "keywords": "Namespace wan24.Crypto.BC Classes AsymmetricBcEcDiffieHellmanAlgorithm EC Diffie Hellman asymmetric algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) AsymmetricBcEcDiffieHellmanPrivateKey EC Diffie Hellman asymmetric private key AsymmetricBcEcDiffieHellmanPublicKey EC Diffie Hellman asymmetric public key AsymmetricBcEcDsaAlgorithm EC DSA asymmetric algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) AsymmetricBcEcDsaPrivateKey Asymmetric EC DSA private key AsymmetricBcEcDsaPublicKey Asymmetric EC DSA public key AsymmetricBikeAlgorithm BIKE asymmetric algorithm AsymmetricBikeHelper BIKE asymmetric algorithm helper AsymmetricBikePrivateKey BIKE asymmetric private key AsymmetricBikePublicKey BIKE asymmetric public key AsymmetricDilithiumAlgorithm CRYSTALS-Dilithium asymmetric algorithm AsymmetricDilithiumHelper CRYSTALS-Dilithium helper AsymmetricDilithiumPrivateKey CRYSTALS-Dilithium asymmetric private key AsymmetricDilithiumPublicKey CRYSTALS-Dilithium asymmetric public key AsymmetricEd25519Algorithm Ed25519 asymmetric algorithm (128 bit security) AsymmetricEd25519PrivateKey Ed25519 asymmetric private key AsymmetricEd25519PublicKey Ed25519 asymmetric public key AsymmetricEd448Algorithm Ed448 asymmetric algorithm (224 bit security) AsymmetricEd448PrivateKey Ed448 asymmetric private key AsymmetricEd448PublicKey Ed448 asymmetric public key AsymmetricFalconAlgorithm FALCON asymmetric algorithm AsymmetricFalconHelper Asymmetric FALCON algorithm helper AsymmetricFalconPrivateKey Asymmetric FALCON private key AsymmetricFalconPublicKey Asymmetric FALCON public key AsymmetricFrodoKemAlgorithm FrodoKEM asymmetric algorithm AsymmetricFrodoKemHelper FrodoKEM helper AsymmetricFrodoKemPrivateKey FrodoKEM asymmetric private key AsymmetricFrodoKemPublicKey FrodoKEM asymmetric public key AsymmetricHqcAlgorithm HQC asymmetric algorithm AsymmetricHqcHelper HQC asymmetric algorithm helper AsymmetricHqcPrivateKey HQC asymmetric private key AsymmetricHqcPublicKey HQC asymmetric public key AsymmetricKyberAlgorithm CRYSTALS-Kyber asymmetric algorithm AsymmetricKyberHelper CRYSTALS-Kyber asymmetric algorithm helper AsymmetricKyberPrivateKey CRYSTALS-Kyber asymmetric private key AsymmetricKyberPublicKey CRYSTALS-Kyber asymmetric public key AsymmetricNtruEncryptAlgorithm NTRUEncrypt asymmetric algorithm AsymmetricNtruEncryptPrivateKey NTRUEncrypt asymmetric private key AsymmetricNtruEncryptPublicKey NTRUEncrypt asymmetric public key AsymmetricNtruHelper NTRU helper AsymmetricPicnicAlgorithm CRYSTALS-Dilithium asymmetric algorithm AsymmetricPicnicHelper Picnic helper AsymmetricPicnicPrivateKey Picnic asymmetric private key AsymmetricPicnicPublicKey Picnic asymmetric public key AsymmetricSNtruPrimeAlgorithm Streamlined NTRU Prime asymmetric algorithm AsymmetricSNtruPrimeHelper Streamlined NTRU Prime helper AsymmetricSNtruPrimePrivateKey Streamlined NTRU Prime asymmetric private key AsymmetricSNtruPrimePublicKey Streamlined NTRU Prime asymmetric public key AsymmetricSphincsPlusAlgorithm SPHINCS+ asymmetric algorithm AsymmetricSphincsPlusHelper SPHINCS+ asymmetric algorithm helper AsymmetricSphincsPlusPrivateKey SPHINCS+ asymmetric private key AsymmetricSphincsPlusPublicKey SPHINCS+ asymmetric public key AsymmetricX25519Algorithm X25519 asymmetric algorithm (128 bit security)) AsymmetricX25519PrivateKey X25519 asymmetric private key AsymmetricX25519PublicKey X25519 asymmetric public key AsymmetricX448Algorithm X448 asymmetric algorithm (224 bit security)) AsymmetricX448PrivateKey X448 asymmetric private key AsymmetricX448PublicKey X448 asymmetric public key AsymmetricXEd25519Algorithm XEd25519 asymmetric algorithm (converts the used Ed25519 private key to a X25519 private key for key exchange, 128 bit security) AsymmetricXEd25519PrivateKey XEd25519 asymmetric private key AsymmetricXEd25519PublicKey XEd25519 asymmetric public key AsymmetricXEd448Algorithm XEd448 asymmetric algorithm (converts the used Ed448 private key to a X448 private key for key exchange; 224 bit security) AsymmetricXEd448PrivateKey XEd448 asymmetric private key AsymmetricXEd448PublicKey XEd448 asymmetric public key BcEllipticCurves Bouncy Castle elliptic curves Bootstrap Bootstrapper BouncyCastle Bouncy Castle helper BouncyCastleAeadCipherAlgorithmBase Base class for a Bouncy Castle AEAD stream cipher BouncyCastleAsymmetricAlgorithmBase Base class for a Bouncy Castle asymmetric algorithm BouncyCastleAsymmetricAlgorithmBase Base class for a Bouncy Castle asymmetric algorithm BouncyCastleAsymmetricNonPqcPrivateKeyBase Base class for a Bouncy Castle asymmetric non-PQC private key BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase2 Base class for a Bouncy Castle asymmetric non-PQC private signature key (which requires a context constructor parameter) BouncyCastleAsymmetricNonPqcPrivateSignatureKeyBase Base class for a Bouncy Castle asymmetric non-PQC private signature key BouncyCastleAsymmetricNonPqcPublicKeyBase Base class fo a Bouncy Castle asymmetric non-PQC public key BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase2 Base class for a Bouncy Castle asymmetric non-PQC public signature key (which requires a context constructor parameter) BouncyCastleAsymmetricNonPqcPublicSignatureKeyBase Base class for a Bouncy Castle asymmetric non-PQC public signature key BouncyCastleAsymmetricPqcPrivateKeyBase Base class for a Bouncy Castle asymmetric PQC private key BouncyCastleAsymmetricPqcPrivateKeyExchangeKeyBase Base class for a Bouncy Castle asymmetric PQC private key exchange key BouncyCastleAsymmetricPqcPrivateSignatureKeyBase Base class for a Bouncy Castle asymmetric PQC private signature key BouncyCastleAsymmetricPqcPublicKeyBase Base class fo a Bouncy Castle asymmetric PQC public key BouncyCastleAsymmetricPqcPublicSignatureKeyBase Base class for a Bouncy Castle asymmetric PQC public signature key BouncyCastleAsymmetricPrivateKeyBase Base class for a Bouncy Castle asymmetric private key BouncyCastleAsymmetricPublicKeyBase Base class fo a Bouncy Castle asymmetric public key BouncyCastleBlockCipherAlgorithmBase Base class for a Bouncy Castle block cipher BouncyCastleBufferedCipherAlgorithmBase Base class for a Bouncy Castle buffered block cipher BouncyCastleCipherAlgorithmBase Base class for a Bouncy Castle cipher BouncyCastleCryptoTransform Bouncy Castle crypto transform BouncyCastleHashAlgorithm Bouncy Castle hash algorithm BouncyCastleHashAlgorithmBase Base class for a Bouncy Castle hash algorithm BouncyCastleHmacAlgorithm Bouncy Castle HMAC algorithm BouncyCastleHmacAlgorithmBase Base class for a Bouncy Castle MAC algorithm BouncyCastleRandomGenerator Random number generator for Bouncy Castle, which adopts wan24.Crypto.RND BouncyCastleRngWrapper Bouncy Castle RNG wrapper for wan24-Crypto BouncyCastleStreamCipherAlgorithmBase Base class for a Bouncy Castle stream cipher ChaCha20Rng ChaCha20 CSRNG DisposableRngWrapper Bouncy Castle disposable RNG wrapper for wan24-Crypto EncryptionAes256GcmAlgorithm AES-256-GCM AEAD symmetric encryption algorithm (using 128 bit MAC) EncryptionBcAes256CbcAlgorithm AES-256-CBC symmetric encryption algorithm (using ISO10126 padding; may be used as replacement, if the .NET algorithm isn't available on the current platform) EncryptionChaCha20Algorithm ChaCha20 symmetric encryption algorithm (using 256 bit key) EncryptionSerpent256CbcAlgorithm Serpent 256 CBC symmetric encryption algorithm (using ISO10126 padding) EncryptionSerpent256GcmAlgorithm Serpent 256 GCM symmetric encryption algorithm (using 128 bit MAC) EncryptionTwofish256CbcAlgorithm Twofish 256 CBC symmetric encryption algorithm (using ISO10126 padding) EncryptionTwofish256GcmAlgorithm Twofish 256 GCM symmetric encryption algorithm (using 128 bit MAC) EncryptionXSalsa20Algorithm XSalsa20 symmetric encryption algorithm (using 256 bit key) Extensions Extension methods HashBcSha3_256Algorithm SHA3-256 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcSha3_256Algorithm.SHA3_256 SHA3-256 HashBcSha3_384Algorithm SHA3-384 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcSha3_384Algorithm.SHA3_384 SHA3-384 HashBcSha3_512Algorithm SHA3-512 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcSha3_512Algorithm.SHA3_512 SHA3-512 HashBcShake128Algorithm Shake128 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) HashBcShake256Algorithm Shake256 hash algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_256Algorithm HMAC-SHA3-256 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_256Algorithm.HMACSHA3_256 HMACSHA3-256 MacBcHmacSha3_384Algorithm HMAC-SHA3-384 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_384Algorithm.HMACSHA3_384 HMACSHA3-384 MacBcHmacSha3_512Algorithm HMAC-SHA3-512 MAC algorithm (may be used as replacement, if the .NET algorithm isn't available on the current platform) MacBcHmacSha3_512Algorithm.HMACSHA3_512 HMACSHA3-512 RandomDataProvider Random data provider RandomDataProvider.SeedEventArgs OnSeed event arguments StreamCipherRng Stream cipher CSRNG XSalsa20Rng XSalsa20 CSRNG Interfaces IBouncyCastleRng Interface for a seedable Bouncy Castle supporting RNG Delegates RandomDataProvider.Seed_Delegate Delegate for a seed handler"
       },
       "articles/intro.html": {
         "href": "articles/intro.html",
    @@ -612,6 +642,6 @@
       "index.html": {
         "href": "index.html",
         "title": "wan24-Crypto-BC | wan24-Crypto-BC",
    -    "keywords": "wan24-Crypto-BC This library adopts The Bouncy Castle Cryptography Library For .NET to wan24-Crypto and extends the wan24-Crypto library with these algorithms: Algorithm ID Name Asymmetric CRYSTALS-Kyber 2 CRYSTALSKYBER CRYSTALS-Dilithium 3 CRYSTALSDILITHIUM FALCON 4 FALCON SPHINCS+ 5 SPHINCSPLUS FrodoKEM 6 FRODOKEM NTRUEncrypt 7 NTRUENCRYPT Ed25519 8 ED25519 Ed448 9 ED448 X25519 10 X25519 X448 11 X448 XEd25519 12 XED25519 XEd448 13 XED448 Streamlined NTRU Prime 14 SNTRUP BIKE 15 BIKE HQC 16 HQC Picnic 17 PICNIC Symmetric ChaCha20 1 CHACHA20 XSalsa20 2 XSALSA20 AES-256-GCM AEAD (128 bit MAC) 3 AES256GCM Serpent 256 CBC (ISO10126 padding) 5 SERPENT256CBC Serpent 256 GCM AEAD (128 bit MAC) 6 SERPENT256GCM Twofish 256 CBC (ISO10126 padding) 7 TWOFISH256CBC Twofish 256 GCM AEAD (128 bit MAC) 8 TWOFISH256GCM Main goals of this extension library are to make wan24-Crypto usable on all platforms and extend its algorithms by PQC algorithms and other non-PQC algorithms, which are not available from .NET, but implemented in the Bouncy Castle library. How to get it This library is available as NuGet package. Usage In case you don't use the wan24-Core bootstrapper logic, you need to initialize the Bouncy Castle extension first, before you can use it: wan24.Crypto.BC.Bootstrap.Boot(); This will register the algorithms to the wan24-Crypto library. wan24-Crypto algorithm replacement Some algorithms of the wan24-Crypto library are not available on some platforms, that's why they need to be replaced in order to be used: wan24-Crypto wan24-Crypto-BC AsymmetricEcDiffieHellmanAlgorithm AsymmetricBcEcDiffieHellmanAlgorithm AsymmetricEcDsaAlgorithm AsymmetricBcEcDsaAlgorithm EncryptionAes256CbcAlgorithm EncryptionBcAes256CbcAlgorithm HashShake128Algorithm HashBcShake128Algorithm HashShake256Algorithm HashBcShake256Algorithm HashSha3_256Algorithm HashBcSha3_256Algorithm HashSha3_384Algorithm HashBcSha3_384Algorithm HashSha3_512Algorithm HashBcSha3_512Algorithm MacHmacSha3_256Algorithm MacBcHmacSha3_256Algorithm MacHmacSha3_384Algorithm MacBcHmacSha3_384Algorithm MacHmacSha3_512Algorithm MacBcHmacSha3_512Algorithm To replace all of them: BouncyCastle.ReplaceNetAlgorithms(); NOTE: The Shake128/256 replacements don't support variable output length and use the default output length of the wan24-Crypto implementations instead. The NetShake128/256HashAlgorithmAdapter can't be replaced for this reason. Use as default algorithms To set Bouncy Castle defaults as wan24-Crypto defaults: BouncyCastle.SetDefaults(); Per default the current wan24-Crypto default will be set as counter algorithms to HybridAlgorithmHelper. Current Bouncy Castle default algorithms are: Usage Algorithm Key exchange NTRUEncrypt Signature CRYSTALS-Dilithium Encryption Serpent 256 bit CBC PAKE encryption Serpent 256 bit GCM Post quantum safety These asymmetric algorithms are designed for post quantum cryptography: CRYSTALS-Kyber (key exchange) CRYSTALS-Dilithium (signature) FALCON (signature) SPHINCS+ (signature) FrodoKEM (key exchange) NTRUEncrypt (key exchange) Streamlined NTRU Prime (key exchange) BIKE (key exchange) HQC (key exchange) Picnic (signature) Normally you want to use them in hybrid mode and use classical algorithms of the wan24-Crypto package as counter algorithm. To do this per default: // Enable the post quantum algorithms as (counter-)defaults CryptoHelper.ForcePostQuantumSafety(); This will use these algorithms as (counter) algorithms for asymmetric cryptography, in case you didn't define other post quantum algorithms already: NTRUEncrypt (key exchange) CRYSTALS-Dilithium (signature) The counter algorithm will come in effect, if you use asymmetric keys for encryption: // Create options having a counter private key CryptoOptions options = EncryptionHelper.GetDefaultOptions(); options.SetCounterPrivateKey(yourNtruPrivateKey); // Encrypt using the options and your normal private key byte[] cipherData = rawData.Encrypt(yourNormalPrivateKey, options); rawData = cipherData.Decrypt(yourNormalPrivateKey, options); And for signature: // Create options having a counter private key CryptoOptions options = AsymmetricHelper.GetDefaultSignatureOptions(); options.SetCounterPrivateKey(yourDilithiumPrivateKey); // Sign using the options and your normal private key SignatureContainer signature = dataToSign.Sign(yourNormalPrivateKey, options: options); Algorithm parameters used Algorithm Parameters CRYSTALS-Kyber, CRYSTALS-Dilithium non-AES SPHINCS+ Haraka simple* FrodoKEM AES* Picnic Full NOTE: CRYSTALS-Kyber and CRYSTALS-Dilithium AES parameters and SPHINCS+ robust parameters are deprecated! SPHINCS+ Haraka parameters are removed from the FIPS standard, so wan24-Crypto-BC will switch to Shake parameters instead. Also the FrodoKEM Shake parameters will be used in the next major release, which will require to renew existing keys, which use the AES parameters from the current version of this library. WARNING The PQC standards are in development at the moment, so future incompatible changes are very likely and will be handled in a new major release of this library. Random data provider The RandomDataProvider is a RandomDataGenerator which provides added seed data to OnSeed(Async) attached event handlers. It uses the ChaCha20Rng in combination with RND of wan24-Crypto to produce cryptographic secure random data (CSRNG). An instance may be set as RND.Generator singleton random data generator for all consumers (like key generators etc.). RandomDataProvider can be customized by extending the type. Pregnant methods are virtual and can be overridden. Since the type is a HostedServiceBase, it can be used in modern .NET app environments. And since it implements the IRandomGenerator interface of Bouncy Castle, it can be used as secure random data source for all Bouncy Castle algorithms (like key generators) also. By calling the CreateFork(Async) method, you can create an attached instance, which will be initialized with a random seed generated by the parent instance and consumes the provided seeds from the parent automatically. NOTE: Don't forget to dispose an unused RandomDataProvider instance! CAUTION: There is a patent (US10402172B1) which comes into play, if you plan to create a Random or Entropy as a Service (R/EaaS) application, especially when using QRNG entropy. Read that document carefully to avoid disappointments. Stream cipher RNG The StreamCipherRng uses any stream cipher to encrypt the generated random bytes of an underlaying PRNG using a random key. The result is a CSRNG. These stream ciphers are available with wan24-Crypto-BC, but you could use any other stream cipher (but not AEAD implementations!) also: Stream cipher RNG ChaCha20 ChaCha20Rng XSalsa20 XSalsa20Rng If you didn't specify an underlaying PRNG, Bouncy Castle's VmpcRandomGenerator will be used and seeded using 256 bytes from RND. The final CSRNG implements IRandomGenerator for use with Bouncy Castle, and also ISeedableRng for use with RND (as seed consumer, for example). NOTE: A StreamCipherRng needs to be disposed after use! You can use the resulting CSRNG as default RNG for RND: ChaCha20Rng csrng = new(); // Enable automatic seeding RND.SeedConsumer = csrng; // Use as default CSRNG RND.FillBytes = csrng.GetBytes; RND.FillBytesAsync = csrng.GetBytesAsync; NOTE: When setting the RND.FillBytes(Async) callbacks, they may not be used, if /dev/random was preferred. To disable /dev/random, set RND.UseDevRandom and RND.RequireDevRandom to false also. NOTE: Currently only stream ciphers are supported, because the cipher RNG implementation doesn't buffer pre-generated random data. X/Ed448-Goldilocks and X/Ed25519 Just a short note on Curve448: Private and public keys have a different key size: The private key has 456 bit, while the public key has 448 bit. Both key sizes are supported for key generation and result in the same key sizes for the private (456 bit) and the public (448 bit) key. The private key of a key pair will always identify with 456 bit, while the public key will always identify with 448 bit - no matter which key size was chosen for key pair generation. The Ed448 signature is context based, but currently only an empty byte array is being used as context data. Instead of a context you should use the purpose free text, which can be given to the signature methods of wan24-Crypto. XEd25519 and XEd448 convert the private Ed25519/448 key to X25519/448 for key exchange. The private key stores only the Ed25519/448 information, while the public key stores both, the Ed25519/448 and the X25519/448 informations (and therefor require a custom serialization format). You can derive Ed25519/448 private keys from a XEd25519/448 private key, and XEd25519/448 private keys from a Ed25519/448 private key. Using the ToX25519/448PrivateKey extension methods for the Ed25519/448PrivateKeyParameters a conversion to X25519/448 is possible now (if you want to use the Bouncy Castle API directly). WARNING: Different Ed25519/448 keys may convert to equal X25519/448 keys, so be aware of possible collisions!"
    +    "keywords": "wan24-Crypto-BC This library adopts The Bouncy Castle Cryptography Library For .NET to wan24-Crypto and extends the wan24-Crypto library with these algorithms: Algorithm ID Name Asymmetric CRYSTALS-Kyber 2 CRYSTALSKYBER CRYSTALS-Dilithium 3 CRYSTALSDILITHIUM FALCON 4 FALCON SPHINCS+ 5 SPHINCSPLUS FrodoKEM 6 FRODOKEM NTRUEncrypt 7 NTRUENCRYPT Ed25519 8 ED25519 Ed448 9 ED448 X25519 10 X25519 X448 11 X448 XEd25519 12 XED25519 XEd448 13 XED448 Streamlined NTRU Prime 14 SNTRUP BIKE 15 BIKE HQC 16 HQC Picnic 17 PICNIC Symmetric ChaCha20 1 CHACHA20 XSalsa20 2 XSALSA20 AES-256-GCM AEAD (128 bit MAC) 3 AES256GCM Serpent 256 CBC (ISO10126 padding) 5 SERPENT256CBC Serpent 256 GCM AEAD (128 bit MAC) 6 SERPENT256GCM Twofish 256 CBC (ISO10126 padding) 7 TWOFISH256CBC Twofish 256 GCM AEAD (128 bit MAC) 8 TWOFISH256GCM Main goals of this extension library are to make wan24-Crypto usable on all platforms and extend its algorithms by PQC algorithms and other non-PQC algorithms, which are not available from .NET, but implemented in the Bouncy Castle library. How to get it This library is available as NuGet package. Usage In case you don't use the wan24-Core bootstrapper logic, you need to initialize the Bouncy Castle extension first, before you can use it: wan24.Crypto.BC.Bootstrap.Boot(); This will register the algorithms to the wan24-Crypto library. wan24-Crypto algorithm replacement Some algorithms of the wan24-Crypto library are not available on some platforms, that's why they need to be replaced in order to be used: wan24-Crypto wan24-Crypto-BC AsymmetricEcDiffieHellmanAlgorithm AsymmetricBcEcDiffieHellmanAlgorithm AsymmetricEcDsaAlgorithm AsymmetricBcEcDsaAlgorithm EncryptionAes256CbcAlgorithm EncryptionBcAes256CbcAlgorithm HashShake128Algorithm HashBcShake128Algorithm HashShake256Algorithm HashBcShake256Algorithm HashSha3_256Algorithm HashBcSha3_256Algorithm HashSha3_384Algorithm HashBcSha3_384Algorithm HashSha3_512Algorithm HashBcSha3_512Algorithm MacHmacSha3_256Algorithm MacBcHmacSha3_256Algorithm MacHmacSha3_384Algorithm MacBcHmacSha3_384Algorithm MacHmacSha3_512Algorithm MacBcHmacSha3_512Algorithm To replace all of them: BouncyCastle.ReplaceNetAlgorithms(); NOTE: The Shake128/256 replacements don't support variable output length and use the default output length of the wan24-Crypto implementations instead. The NetShake128/256HashAlgorithmAdapter can't be replaced for this reason. In order to override the .NET default SHA3 hash and HMAC algorithms, you can call: BouncyCastle.RegisterNetAlgorithms(); This will use Bouncy Castle SHA3 implementations for the .NET implemented SHA3 hash algorithms: Name Type SHA3-256 HashBcSha3_256.SHA3_256 SHA3-384 HashBcSha3_384.SHA3_384 SHA3-512 HashBcSha3_512.SHA3_512 HMACSHA3-256 MacBcHmacSha3_256.HMACSHA3_256 HMACSHA3-384 MacBcHmacSha3_384.HMACSHA3_384 HMACSHA3-512 MacBcHmacSha3_512.HMACSHA3_512 This step is required, if you want to ensure that whenever a .NET crypto type or any 3rd party crypto type requests a SHA3 hash or HMAC instance using the static HashAlgorithm.Create(\"NAME\") or KeyedHashAlgorithm.Create(\"NAME\") methods. Use as default algorithms To set Bouncy Castle defaults as wan24-Crypto defaults: BouncyCastle.SetDefaults(); Per default the current wan24-Crypto default will be set as counter algorithms to HybridAlgorithmHelper. Current Bouncy Castle default algorithms are: Usage Algorithm Key exchange NTRUEncrypt Signature CRYSTALS-Dilithium Encryption Serpent 256 bit CBC PAKE encryption Serpent 256 bit GCM Post quantum safety These asymmetric algorithms are designed for post quantum cryptography: CRYSTALS-Kyber (key exchange) CRYSTALS-Dilithium (signature) FALCON (signature) SPHINCS+ (signature) FrodoKEM (key exchange) NTRUEncrypt (key exchange) Streamlined NTRU Prime (key exchange) BIKE (key exchange) HQC (key exchange) Picnic (signature) Normally you want to use them in hybrid mode and use classical algorithms of the wan24-Crypto package as counter algorithm. To do this per default: // Enable the post quantum algorithms as (counter-)defaults CryptoHelper.ForcePostQuantumSafety(); This will use these algorithms as (counter) algorithms for asymmetric cryptography, in case you didn't define other post quantum algorithms already: NTRUEncrypt (key exchange) CRYSTALS-Dilithium (signature) The counter algorithm will come in effect, if you use asymmetric keys for encryption: // Create options having a counter private key CryptoOptions options = EncryptionHelper.GetDefaultOptions(); options.SetCounterPrivateKey(yourNtruPrivateKey); // Encrypt using the options and your normal private key byte[] cipherData = rawData.Encrypt(yourNormalPrivateKey, options); rawData = cipherData.Decrypt(yourNormalPrivateKey, options); And for signature: // Create options having a counter private key CryptoOptions options = AsymmetricHelper.GetDefaultSignatureOptions(); options.SetCounterPrivateKey(yourDilithiumPrivateKey); // Sign using the options and your normal private key SignatureContainer signature = dataToSign.Sign(yourNormalPrivateKey, options: options); Algorithm parameters used Algorithm Parameters CRYSTALS-Kyber, CRYSTALS-Dilithium non-AES SPHINCS+ Haraka simple* FrodoKEM AES* Picnic Full NOTE: CRYSTALS-Kyber and CRYSTALS-Dilithium AES parameters and SPHINCS+ robust parameters are deprecated! SPHINCS+ Haraka parameters are removed from the FIPS standard, so wan24-Crypto-BC will switch to Shake parameters instead. Also the FrodoKEM Shake parameters will be used in the next major release, which will require to renew existing keys, which use the AES parameters from the current version of this library. WARNING The PQC standards are in development at the moment, so future incompatible changes are very likely and will be handled in a new major release of this library. Random data provider The RandomDataProvider is a RandomDataGenerator which provides added seed data to OnSeed(Async) attached event handlers. It uses the ChaCha20Rng in combination with RND of wan24-Crypto to produce cryptographic secure random data (CSRNG). An instance may be set as RND.Generator singleton random data generator for all consumers (like key generators etc.). RandomDataProvider can be customized by extending the type. Pregnant methods are virtual and can be overridden. Since the type is a HostedServiceBase, it can be used in modern .NET app environments. And since it implements the IRandomGenerator interface of Bouncy Castle, it can be used as secure random data source for all Bouncy Castle algorithms (like key generators) also. By calling the CreateFork(Async) method, you can create an attached instance, which will be initialized with a random seed generated by the parent instance and consumes the provided seeds from the parent automatically. NOTE: Don't forget to dispose an unused RandomDataProvider instance! CAUTION: There is a patent (US10402172B1) which comes into play, if you plan to create a Random or Entropy as a Service (R/EaaS) application, especially when using QRNG entropy. Read that document carefully to avoid disappointments. Stream cipher RNG The StreamCipherRng uses any stream cipher to encrypt the generated random bytes of an underlaying PRNG using a random key. The result is a CSRNG. These stream ciphers are available with wan24-Crypto-BC, but you could use any other stream cipher (but not AEAD implementations!) also: Stream cipher RNG ChaCha20 ChaCha20Rng XSalsa20 XSalsa20Rng If you didn't specify an underlaying PRNG, Bouncy Castle's VmpcRandomGenerator will be used and seeded using 256 bytes from RND. The final CSRNG implements IRandomGenerator for use with Bouncy Castle, and also ISeedableRng for use with RND (as seed consumer, for example). NOTE: A StreamCipherRng needs to be disposed after use! You can use the resulting CSRNG as default RNG for RND: ChaCha20Rng csrng = new(); // Enable automatic seeding RND.SeedConsumer = csrng; // Use as default CSRNG RND.FillBytes = csrng.GetBytes; RND.FillBytesAsync = csrng.GetBytesAsync; NOTE: When setting the RND.FillBytes(Async) callbacks, they may not be used, if /dev/random was preferred. To disable /dev/random, set RND.UseDevRandom and RND.RequireDevRandom to false also. NOTE: Currently only stream ciphers are supported, because the cipher RNG implementation doesn't buffer pre-generated random data. X/Ed448-Goldilocks and X/Ed25519 Just a short note on Curve448: Private and public keys have a different key size: The private key has 456 bit, while the public key has 448 bit. Both key sizes are supported for key generation and result in the same key sizes for the private (456 bit) and the public (448 bit) key. The private key of a key pair will always identify with 456 bit, while the public key will always identify with 448 bit - no matter which key size was chosen for key pair generation. The Ed448 signature is context based, but currently only an empty byte array is being used as context data. Instead of a context you should use the purpose free text, which can be given to the signature methods of wan24-Crypto. XEd25519 and XEd448 convert the private Ed25519/448 key to X25519/448 for key exchange. The private key stores only the Ed25519/448 information, while the public key stores both, the Ed25519/448 and the X25519/448 informations (and therefor require a custom serialization format). You can derive Ed25519/448 private keys from a XEd25519/448 private key, and XEd25519/448 private keys from a Ed25519/448 private key. Using the ToX25519/448PrivateKey extension methods for the Ed25519/448PrivateKeyParameters a conversion to X25519/448 is possible now (if you want to use the Bouncy Castle API directly). WARNING: Different Ed25519/448 keys may convert to equal X25519/448 keys, so be aware of possible collisions!"
       }
     }
    \ No newline at end of file
    diff --git a/docs/manifest.json b/docs/manifest.json
    index 305f4f1..df0e201 100644
    --- a/docs/manifest.json
    +++ b/docs/manifest.json
    @@ -24,11 +24,11 @@
           "type": "Toc",
           "source_relative_path": "api/toc.yml",
           "output": {
    -        ".html": {
    -          "relative_path": "api/toc.html"
    -        },
             ".json": {
               "relative_path": "api/toc.json"
    +        },
    +        ".html": {
    +          "relative_path": "api/toc.html"
             }
           },
           "version": ""
    @@ -1083,6 +1083,16 @@
           },
           "version": ""
         },
    +    {
    +      "type": "ManagedReference",
    +      "source_relative_path": "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.yml",
    +      "output": {
    +        ".html": {
    +          "relative_path": "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html"
    +        }
    +      },
    +      "version": ""
    +    },
         {
           "type": "ManagedReference",
           "source_relative_path": "api/wan24.Crypto.BC.HashBcSha3_256Algorithm.yml",
    @@ -1093,6 +1103,16 @@
           },
           "version": ""
         },
    +    {
    +      "type": "ManagedReference",
    +      "source_relative_path": "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.yml",
    +      "output": {
    +        ".html": {
    +          "relative_path": "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html"
    +        }
    +      },
    +      "version": ""
    +    },
         {
           "type": "ManagedReference",
           "source_relative_path": "api/wan24.Crypto.BC.HashBcSha3_384Algorithm.yml",
    @@ -1103,6 +1123,16 @@
           },
           "version": ""
         },
    +    {
    +      "type": "ManagedReference",
    +      "source_relative_path": "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.yml",
    +      "output": {
    +        ".html": {
    +          "relative_path": "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html"
    +        }
    +      },
    +      "version": ""
    +    },
         {
           "type": "ManagedReference",
           "source_relative_path": "api/wan24.Crypto.BC.HashBcSha3_512Algorithm.yml",
    @@ -1143,6 +1173,16 @@
           },
           "version": ""
         },
    +    {
    +      "type": "ManagedReference",
    +      "source_relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.yml",
    +      "output": {
    +        ".html": {
    +          "relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html"
    +        }
    +      },
    +      "version": ""
    +    },
         {
           "type": "ManagedReference",
           "source_relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.yml",
    @@ -1153,6 +1193,16 @@
           },
           "version": ""
         },
    +    {
    +      "type": "ManagedReference",
    +      "source_relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.yml",
    +      "output": {
    +        ".html": {
    +          "relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html"
    +        }
    +      },
    +      "version": ""
    +    },
         {
           "type": "ManagedReference",
           "source_relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.yml",
    @@ -1163,6 +1213,16 @@
           },
           "version": ""
         },
    +    {
    +      "type": "ManagedReference",
    +      "source_relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.yml",
    +      "output": {
    +        ".html": {
    +          "relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html"
    +        }
    +      },
    +      "version": ""
    +    },
         {
           "type": "ManagedReference",
           "source_relative_path": "api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.yml",
    @@ -1247,11 +1307,11 @@
           "type": "Toc",
           "source_relative_path": "articles/toc.yml",
           "output": {
    -        ".html": {
    -          "relative_path": "articles/toc.html"
    -        },
             ".json": {
               "relative_path": "articles/toc.json"
    +        },
    +        ".html": {
    +          "relative_path": "articles/toc.html"
             }
           },
           "version": ""
    @@ -1270,11 +1330,11 @@
           "type": "Toc",
           "source_relative_path": "toc.yml",
           "output": {
    -        ".html": {
    -          "relative_path": "toc.html"
    -        },
             ".json": {
               "relative_path": "toc.json"
    +        },
    +        ".html": {
    +          "relative_path": "toc.html"
             }
           },
           "version": ""
    diff --git a/docs/xrefmap.yml b/docs/xrefmap.yml
    index aaee30a..2957fac 100644
    --- a/docs/xrefmap.yml
    +++ b/docs/xrefmap.yml
    @@ -6628,6 +6628,19 @@ references:
       commentId: T:wan24.Crypto.BC.BouncyCastle
       fullName: wan24.Crypto.BC.BouncyCastle
       nameWithType: BouncyCastle
    +- uid: wan24.Crypto.BC.BouncyCastle.RegisterNetAlgrithms
    +  name: RegisterNetAlgrithms()
    +  href: api/wan24.Crypto.BC.BouncyCastle.html#wan24_Crypto_BC_BouncyCastle_RegisterNetAlgrithms
    +  commentId: M:wan24.Crypto.BC.BouncyCastle.RegisterNetAlgrithms
    +  fullName: wan24.Crypto.BC.BouncyCastle.RegisterNetAlgrithms()
    +  nameWithType: BouncyCastle.RegisterNetAlgrithms()
    +- uid: wan24.Crypto.BC.BouncyCastle.RegisterNetAlgrithms*
    +  name: RegisterNetAlgrithms
    +  href: api/wan24.Crypto.BC.BouncyCastle.html#wan24_Crypto_BC_BouncyCastle_RegisterNetAlgrithms_
    +  commentId: Overload:wan24.Crypto.BC.BouncyCastle.RegisterNetAlgrithms
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.BouncyCastle.RegisterNetAlgrithms
    +  nameWithType: BouncyCastle.RegisterNetAlgrithms
     - uid: wan24.Crypto.BC.BouncyCastle.ReplaceNetAlgorithms
       name: ReplaceNetAlgorithms()
       href: api/wan24.Crypto.BC.BouncyCastle.html#wan24_Crypto_BC_BouncyCastle_ReplaceNetAlgorithms
    @@ -9127,6 +9140,12 @@ references:
       fullName.vb: wan24.Crypto.BC.BouncyCastleHashAlgorithm.New
       nameWithType: BouncyCastleHashAlgorithm.BouncyCastleHashAlgorithm
       nameWithType.vb: BouncyCastleHashAlgorithm.New
    +- uid: wan24.Crypto.BC.BouncyCastleHashAlgorithm.Digest
    +  name: Digest
    +  href: api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html#wan24_Crypto_BC_BouncyCastleHashAlgorithm_Digest
    +  commentId: F:wan24.Crypto.BC.BouncyCastleHashAlgorithm.Digest
    +  fullName: wan24.Crypto.BC.BouncyCastleHashAlgorithm.Digest
    +  nameWithType: BouncyCastleHashAlgorithm.Digest
     - uid: wan24.Crypto.BC.BouncyCastleHashAlgorithm.Dispose(System.Boolean)
       name: Dispose(bool)
       href: api/wan24.Crypto.BC.BouncyCastleHashAlgorithm.html#wan24_Crypto_BC_BouncyCastleHashAlgorithm_Dispose_System_Boolean_
    @@ -9377,6 +9396,12 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.BouncyCastleHmacAlgorithm.Initialize
       nameWithType: BouncyCastleHmacAlgorithm.Initialize
    +- uid: wan24.Crypto.BC.BouncyCastleHmacAlgorithm.Mac
    +  name: Mac
    +  href: api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html#wan24_Crypto_BC_BouncyCastleHmacAlgorithm_Mac
    +  commentId: F:wan24.Crypto.BC.BouncyCastleHmacAlgorithm.Mac
    +  fullName: wan24.Crypto.BC.BouncyCastleHmacAlgorithm.Mac
    +  nameWithType: BouncyCastleHmacAlgorithm.Mac
     - uid: wan24.Crypto.BC.BouncyCastleHmacAlgorithm.TryHashFinal(System.Span{System.Byte},System.Int32@)
       name: TryHashFinal(Span, out int)
       href: api/wan24.Crypto.BC.BouncyCastleHmacAlgorithm.html#wan24_Crypto_BC_BouncyCastleHmacAlgorithm_TryHashFinal_System_Span_System_Byte__System_Int32__
    @@ -11917,6 +11942,44 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.HashBcSha3_256Algorithm.IsPostQuantum
       nameWithType: HashBcSha3_256Algorithm.IsPostQuantum
    +- uid: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256
    +  name: HashBcSha3_256Algorithm.SHA3_256
    +  href: api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html
    +  commentId: T:wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256
    +  fullName: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256
    +  nameWithType: HashBcSha3_256Algorithm.SHA3_256
    +- uid: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.#ctor
    +  name: SHA3_256()
    +  href: api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html#wan24_Crypto_BC_HashBcSha3_256Algorithm_SHA3_256__ctor
    +  commentId: M:wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.#ctor
    +  name.vb: New()
    +  fullName: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.SHA3_256()
    +  fullName.vb: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.New()
    +  nameWithType: HashBcSha3_256Algorithm.SHA3_256.SHA3_256()
    +  nameWithType.vb: HashBcSha3_256Algorithm.SHA3_256.New()
    +- uid: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.#ctor*
    +  name: SHA3_256
    +  href: api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html#wan24_Crypto_BC_HashBcSha3_256Algorithm_SHA3_256__ctor_
    +  commentId: Overload:wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.#ctor
    +  isSpec: "True"
    +  name.vb: New
    +  fullName: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.SHA3_256
    +  fullName.vb: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.New
    +  nameWithType: HashBcSha3_256Algorithm.SHA3_256.SHA3_256
    +  nameWithType.vb: HashBcSha3_256Algorithm.SHA3_256.New
    +- uid: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.Register
    +  name: Register()
    +  href: api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html#wan24_Crypto_BC_HashBcSha3_256Algorithm_SHA3_256_Register
    +  commentId: M:wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.Register
    +  fullName: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.Register()
    +  nameWithType: HashBcSha3_256Algorithm.SHA3_256.Register()
    +- uid: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.Register*
    +  name: Register
    +  href: api/wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.html#wan24_Crypto_BC_HashBcSha3_256Algorithm_SHA3_256_Register_
    +  commentId: Overload:wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.Register
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.HashBcSha3_256Algorithm.SHA3_256.Register
    +  nameWithType: HashBcSha3_256Algorithm.SHA3_256.Register
     - uid: wan24.Crypto.BC.HashBcSha3_384Algorithm
       name: HashBcSha3_384Algorithm
       href: api/wan24.Crypto.BC.HashBcSha3_384Algorithm.html
    @@ -12002,6 +12065,44 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.HashBcSha3_384Algorithm.IsPostQuantum
       nameWithType: HashBcSha3_384Algorithm.IsPostQuantum
    +- uid: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384
    +  name: HashBcSha3_384Algorithm.SHA3_384
    +  href: api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html
    +  commentId: T:wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384
    +  fullName: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384
    +  nameWithType: HashBcSha3_384Algorithm.SHA3_384
    +- uid: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.#ctor
    +  name: SHA3_384()
    +  href: api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html#wan24_Crypto_BC_HashBcSha3_384Algorithm_SHA3_384__ctor
    +  commentId: M:wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.#ctor
    +  name.vb: New()
    +  fullName: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.SHA3_384()
    +  fullName.vb: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.New()
    +  nameWithType: HashBcSha3_384Algorithm.SHA3_384.SHA3_384()
    +  nameWithType.vb: HashBcSha3_384Algorithm.SHA3_384.New()
    +- uid: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.#ctor*
    +  name: SHA3_384
    +  href: api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html#wan24_Crypto_BC_HashBcSha3_384Algorithm_SHA3_384__ctor_
    +  commentId: Overload:wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.#ctor
    +  isSpec: "True"
    +  name.vb: New
    +  fullName: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.SHA3_384
    +  fullName.vb: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.New
    +  nameWithType: HashBcSha3_384Algorithm.SHA3_384.SHA3_384
    +  nameWithType.vb: HashBcSha3_384Algorithm.SHA3_384.New
    +- uid: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.Register
    +  name: Register()
    +  href: api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html#wan24_Crypto_BC_HashBcSha3_384Algorithm_SHA3_384_Register
    +  commentId: M:wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.Register
    +  fullName: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.Register()
    +  nameWithType: HashBcSha3_384Algorithm.SHA3_384.Register()
    +- uid: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.Register*
    +  name: Register
    +  href: api/wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.html#wan24_Crypto_BC_HashBcSha3_384Algorithm_SHA3_384_Register_
    +  commentId: Overload:wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.Register
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.HashBcSha3_384Algorithm.SHA3_384.Register
    +  nameWithType: HashBcSha3_384Algorithm.SHA3_384.Register
     - uid: wan24.Crypto.BC.HashBcSha3_512Algorithm
       name: HashBcSha3_512Algorithm
       href: api/wan24.Crypto.BC.HashBcSha3_512Algorithm.html
    @@ -12087,6 +12188,44 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.HashBcSha3_512Algorithm.IsPostQuantum
       nameWithType: HashBcSha3_512Algorithm.IsPostQuantum
    +- uid: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512
    +  name: HashBcSha3_512Algorithm.SHA3_512
    +  href: api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html
    +  commentId: T:wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512
    +  fullName: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512
    +  nameWithType: HashBcSha3_512Algorithm.SHA3_512
    +- uid: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.#ctor
    +  name: SHA3_512()
    +  href: api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html#wan24_Crypto_BC_HashBcSha3_512Algorithm_SHA3_512__ctor
    +  commentId: M:wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.#ctor
    +  name.vb: New()
    +  fullName: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.SHA3_512()
    +  fullName.vb: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.New()
    +  nameWithType: HashBcSha3_512Algorithm.SHA3_512.SHA3_512()
    +  nameWithType.vb: HashBcSha3_512Algorithm.SHA3_512.New()
    +- uid: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.#ctor*
    +  name: SHA3_512
    +  href: api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html#wan24_Crypto_BC_HashBcSha3_512Algorithm_SHA3_512__ctor_
    +  commentId: Overload:wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.#ctor
    +  isSpec: "True"
    +  name.vb: New
    +  fullName: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.SHA3_512
    +  fullName.vb: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.New
    +  nameWithType: HashBcSha3_512Algorithm.SHA3_512.SHA3_512
    +  nameWithType.vb: HashBcSha3_512Algorithm.SHA3_512.New
    +- uid: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.Register
    +  name: Register()
    +  href: api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html#wan24_Crypto_BC_HashBcSha3_512Algorithm_SHA3_512_Register
    +  commentId: M:wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.Register
    +  fullName: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.Register()
    +  nameWithType: HashBcSha3_512Algorithm.SHA3_512.Register()
    +- uid: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.Register*
    +  name: Register
    +  href: api/wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.html#wan24_Crypto_BC_HashBcSha3_512Algorithm_SHA3_512_Register_
    +  commentId: Overload:wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.Register
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.HashBcSha3_512Algorithm.SHA3_512.Register
    +  nameWithType: HashBcSha3_512Algorithm.SHA3_512.Register
     - uid: wan24.Crypto.BC.HashBcShake128Algorithm
       name: HashBcShake128Algorithm
       href: api/wan24.Crypto.BC.HashBcShake128Algorithm.html
    @@ -12316,6 +12455,44 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.GetMacAlgorithmInt
       nameWithType: MacBcHmacSha3_256Algorithm.GetMacAlgorithmInt
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256
    +  name: MacBcHmacSha3_256Algorithm.HMACSHA3_256
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html
    +  commentId: T:wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256
    +  nameWithType: MacBcHmacSha3_256Algorithm.HMACSHA3_256
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.#ctor(System.Byte[])
    +  name: HMACSHA3_256(byte[])
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html#wan24_Crypto_BC_MacBcHmacSha3_256Algorithm_HMACSHA3_256__ctor_System_Byte___
    +  commentId: M:wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.#ctor(System.Byte[])
    +  name.vb: New(Byte())
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.HMACSHA3_256(byte[])
    +  fullName.vb: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.New(Byte())
    +  nameWithType: MacBcHmacSha3_256Algorithm.HMACSHA3_256.HMACSHA3_256(byte[])
    +  nameWithType.vb: MacBcHmacSha3_256Algorithm.HMACSHA3_256.New(Byte())
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.#ctor*
    +  name: HMACSHA3_256
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html#wan24_Crypto_BC_MacBcHmacSha3_256Algorithm_HMACSHA3_256__ctor_
    +  commentId: Overload:wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.#ctor
    +  isSpec: "True"
    +  name.vb: New
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.HMACSHA3_256
    +  fullName.vb: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.New
    +  nameWithType: MacBcHmacSha3_256Algorithm.HMACSHA3_256.HMACSHA3_256
    +  nameWithType.vb: MacBcHmacSha3_256Algorithm.HMACSHA3_256.New
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register
    +  name: Register()
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html#wan24_Crypto_BC_MacBcHmacSha3_256Algorithm_HMACSHA3_256_Register
    +  commentId: M:wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register()
    +  nameWithType: MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register()
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register*
    +  name: Register
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.html#wan24_Crypto_BC_MacBcHmacSha3_256Algorithm_HMACSHA3_256_Register_
    +  commentId: Overload:wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register
    +  nameWithType: MacBcHmacSha3_256Algorithm.HMACSHA3_256.Register
     - uid: wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.IsPostQuantum
       name: IsPostQuantum
       href: api/wan24.Crypto.BC.MacBcHmacSha3_256Algorithm.html#wan24_Crypto_BC_MacBcHmacSha3_256Algorithm_IsPostQuantum
    @@ -12401,6 +12578,44 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.GetMacAlgorithmInt
       nameWithType: MacBcHmacSha3_384Algorithm.GetMacAlgorithmInt
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384
    +  name: MacBcHmacSha3_384Algorithm.HMACSHA3_384
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html
    +  commentId: T:wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384
    +  nameWithType: MacBcHmacSha3_384Algorithm.HMACSHA3_384
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.#ctor(System.Byte[])
    +  name: HMACSHA3_384(byte[])
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html#wan24_Crypto_BC_MacBcHmacSha3_384Algorithm_HMACSHA3_384__ctor_System_Byte___
    +  commentId: M:wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.#ctor(System.Byte[])
    +  name.vb: New(Byte())
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.HMACSHA3_384(byte[])
    +  fullName.vb: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.New(Byte())
    +  nameWithType: MacBcHmacSha3_384Algorithm.HMACSHA3_384.HMACSHA3_384(byte[])
    +  nameWithType.vb: MacBcHmacSha3_384Algorithm.HMACSHA3_384.New(Byte())
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.#ctor*
    +  name: HMACSHA3_384
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html#wan24_Crypto_BC_MacBcHmacSha3_384Algorithm_HMACSHA3_384__ctor_
    +  commentId: Overload:wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.#ctor
    +  isSpec: "True"
    +  name.vb: New
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.HMACSHA3_384
    +  fullName.vb: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.New
    +  nameWithType: MacBcHmacSha3_384Algorithm.HMACSHA3_384.HMACSHA3_384
    +  nameWithType.vb: MacBcHmacSha3_384Algorithm.HMACSHA3_384.New
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register
    +  name: Register()
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html#wan24_Crypto_BC_MacBcHmacSha3_384Algorithm_HMACSHA3_384_Register
    +  commentId: M:wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register()
    +  nameWithType: MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register()
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register*
    +  name: Register
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.html#wan24_Crypto_BC_MacBcHmacSha3_384Algorithm_HMACSHA3_384_Register_
    +  commentId: Overload:wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register
    +  nameWithType: MacBcHmacSha3_384Algorithm.HMACSHA3_384.Register
     - uid: wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.IsPostQuantum
       name: IsPostQuantum
       href: api/wan24.Crypto.BC.MacBcHmacSha3_384Algorithm.html#wan24_Crypto_BC_MacBcHmacSha3_384Algorithm_IsPostQuantum
    @@ -12486,6 +12701,44 @@ references:
       isSpec: "True"
       fullName: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.GetMacAlgorithmInt
       nameWithType: MacBcHmacSha3_512Algorithm.GetMacAlgorithmInt
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512
    +  name: MacBcHmacSha3_512Algorithm.HMACSHA3_512
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html
    +  commentId: T:wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512
    +  nameWithType: MacBcHmacSha3_512Algorithm.HMACSHA3_512
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.#ctor(System.Byte[])
    +  name: HMACSHA3_512(byte[])
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html#wan24_Crypto_BC_MacBcHmacSha3_512Algorithm_HMACSHA3_512__ctor_System_Byte___
    +  commentId: M:wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.#ctor(System.Byte[])
    +  name.vb: New(Byte())
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.HMACSHA3_512(byte[])
    +  fullName.vb: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.New(Byte())
    +  nameWithType: MacBcHmacSha3_512Algorithm.HMACSHA3_512.HMACSHA3_512(byte[])
    +  nameWithType.vb: MacBcHmacSha3_512Algorithm.HMACSHA3_512.New(Byte())
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.#ctor*
    +  name: HMACSHA3_512
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html#wan24_Crypto_BC_MacBcHmacSha3_512Algorithm_HMACSHA3_512__ctor_
    +  commentId: Overload:wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.#ctor
    +  isSpec: "True"
    +  name.vb: New
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.HMACSHA3_512
    +  fullName.vb: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.New
    +  nameWithType: MacBcHmacSha3_512Algorithm.HMACSHA3_512.HMACSHA3_512
    +  nameWithType.vb: MacBcHmacSha3_512Algorithm.HMACSHA3_512.New
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register
    +  name: Register()
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html#wan24_Crypto_BC_MacBcHmacSha3_512Algorithm_HMACSHA3_512_Register
    +  commentId: M:wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register()
    +  nameWithType: MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register()
    +- uid: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register*
    +  name: Register
    +  href: api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.html#wan24_Crypto_BC_MacBcHmacSha3_512Algorithm_HMACSHA3_512_Register_
    +  commentId: Overload:wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register
    +  isSpec: "True"
    +  fullName: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register
    +  nameWithType: MacBcHmacSha3_512Algorithm.HMACSHA3_512.Register
     - uid: wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.IsPostQuantum
       name: IsPostQuantum
       href: api/wan24.Crypto.BC.MacBcHmacSha3_512Algorithm.html#wan24_Crypto_BC_MacBcHmacSha3_512Algorithm_IsPostQuantum
    diff --git a/src/wan24-Crypto-BC Docs/index.md b/src/wan24-Crypto-BC Docs/index.md
    index 4b73b52..777a382 100644
    --- a/src/wan24-Crypto-BC Docs/index.md	
    +++ b/src/wan24-Crypto-BC Docs/index.md	
    @@ -84,6 +84,30 @@ and use the default output length of the `wan24-Crypto` implementations
     instead. The `NetShake128/256HashAlgorithmAdapter` can't be replaced for this 
     reason.
     
    +In order to override the .NET default SHA3 hash and HMAC algorithms, you can 
    +call:
    +
    +```cs
    +BouncyCastle.RegisterNetAlgorithms();
    +```
    +
    +This will use Bouncy Castle SHA3 implementations for the .NET implemented SHA3 
    +hash algorithms:
    +
    +| Name | Type |
    +| ---- | ---- |
    +| SHA3-256 | `HashBcSha3_256.SHA3_256` |
    +| SHA3-384 | `HashBcSha3_384.SHA3_384` |
    +| SHA3-512 | `HashBcSha3_512.SHA3_512` |
    +| HMACSHA3-256 | `MacBcHmacSha3_256.HMACSHA3_256` |
    +| HMACSHA3-384 | `MacBcHmacSha3_384.HMACSHA3_384` |
    +| HMACSHA3-512 | `MacBcHmacSha3_512.HMACSHA3_512` |
    +
    +This step is required, if you want to ensure that whenever a .NET crypto type 
    +or any 3rd party crypto type requests a SHA3 hash or HMAC instance using the 
    +static `HashAlgorithm.Create("NAME")` or `KeyedHashAlgorithm.Create("NAME")` 
    +methods.
    +
     ### Use as default algorithms
     
     To set Bouncy Castle defaults as `wan24-Crypto` defaults: