EVP_MD-BLAKE2.pod 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. =pod
  2. =head1 NAME
  3. EVP_MD-BLAKE2 - The BLAKE2 EVP_MD implementation
  4. =head1 DESCRIPTION
  5. Support for computing BLAKE2 digests through the B<EVP_MD> API.
  6. =head2 Identities
  7. This implementation is only available with the default provider, and
  8. includes the following varieties:
  9. =over 4
  10. =item BLAKE2S-256
  11. Known names are "BLAKE2S-256" and "BLAKE2s256".
  12. =item BLAKE2B-512
  13. Known names are "BLAKE2B-512" and "BLAKE2b512".
  14. =back
  15. =head2 Settable Parameters
  16. "BLAKE2B-512" supports the following EVP_MD_CTX_set_params() key
  17. described in L<EVP_DigestInit(3)/PARAMETERS>.
  18. =over 4
  19. =item "xoflen" (B<OSSL_DIGEST_PARAM_XOFLEN>) <unsigned integer>
  20. =back
  21. =head2 Gettable Parameters
  22. This implementation supports the common gettable parameters described
  23. in L<EVP_MD-common(7)>.
  24. =head2 Settable Context Parameters
  25. The implementation supports the following L<OSSL_PARAM(3)> entries which
  26. are settable for an B<EVP_MD_CTX> with L<EVP_DigestInit_ex2(3)> or
  27. L<EVP_MD_CTX_set_params(3)>:
  28. =over 4
  29. =item "size" (B<OSSL_DIGEST_PARAM_SIZE>) <unsigned integer>
  30. Sets a different digest length for the L<EVP_DigestFinal(3)> output.
  31. The value of the "size" parameter must not exceed the default digest length
  32. of the respective BLAKE2 algorithm variants, 64 for BLAKE2B-512 and
  33. 32 for BLAKE2S-256. The parameter must be set with the
  34. L<EVP_DigestInit_ex2(3)> call to have an immediate effect. When set with
  35. L<EVP_MD_CTX_set_params(3)> it will have an effect only if the B<EVP_MD_CTX>
  36. context is reinitialized.
  37. =back
  38. =head1 SEE ALSO
  39. L<provider-digest(7)>, L<OSSL_PROVIDER-default(7)>
  40. =head1 HISTORY
  41. This functionality was added in OpenSSL 3.0.
  42. The variable size support was added in OpenSSL 3.2 for BLAKE2B-512 and
  43. in OpenSSL 3.3 for BLAKE2S-256.
  44. =head1 COPYRIGHT
  45. Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved.
  46. Licensed under the Apache License 2.0 (the "License"). You may not use
  47. this file except in compliance with the License. You can obtain a copy
  48. in the file LICENSE in the source distribution or at
  49. L<https://www.openssl.org/source/license.html>.
  50. =cut