OSSL_PROVIDER-default.pod 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. =pod
  2. =head1 NAME
  3. OSSL_PROVIDER-default - OpenSSL default provider
  4. =head1 DESCRIPTION
  5. The OpenSSL default provider supplies the majority of OpenSSL's diverse
  6. algorithm implementations. If an application doesn't specify anything else
  7. explicitly (e.g. in the application or via config), then this is the
  8. provider that will be used as fallback: It is loaded automatically the
  9. first time that an algorithm is fetched from a provider or a function
  10. acting on providers is called and no other provider has been loaded yet.
  11. If an attempt to load a provider has already been made (whether successful
  12. or not) then the default provider won't be loaded automatically. Therefore
  13. if the default provider is to be used in conjunction with other providers
  14. then it must be loaded explicitly. Automatic loading of the default
  15. provider only occurs a maximum of once; if the default provider is
  16. explicitly unloaded then the default provider will not be automatically
  17. loaded again.
  18. =head2 Properties
  19. The implementations in this provider specifically have this property
  20. defined:
  21. =over 4
  22. =item "provider=default"
  23. =back
  24. It may be used in a property query string with fetching functions such as
  25. L<EVP_MD_fetch(3)> or L<EVP_CIPHER_fetch(3)>, as well as with other
  26. functions that take a property query string, such as
  27. L<EVP_PKEY_CTX_new_from_name(3)>.
  28. It isn't mandatory to query for this property, except to make sure to get
  29. implementations of this provider and none other.
  30. Some implementations may define additional properties. Exact information is
  31. listed below
  32. =head1 OPERATIONS AND ALGORITHMS
  33. The OpenSSL default provider supports these operations and algorithms:
  34. =head2 Hashing Algorithms / Message Digests
  35. =over 4
  36. =item SHA1, see L<EVP_MD-SHA1(7)>
  37. =item SHA2, see L<EVP_MD-SHA2(7)>
  38. =item SHA3, see L<EVP_MD-SHA3(7)>
  39. =item KECCAK, see L<EVP_MD-KECCAK(7)>
  40. =item KECCAK-KMAC, see L<EVP_MD-KECCAK-KMAC(7)>
  41. =item SHAKE, see L<EVP_MD-SHAKE(7)>
  42. =item BLAKE2, see L<EVP_MD-BLAKE2(7)>
  43. =item SM3, see L<EVP_MD-SM3(7)>
  44. =item MD5, see L<EVP_MD-MD5(7)>
  45. =item MD5-SHA1, see L<EVP_MD-MD5-SHA1(7)>
  46. =item RIPEMD160, see L<EVP_MD-RIPEMD160(7)>
  47. =item NULL, see L<EVP_MD-NULL(7)>
  48. =back
  49. =head2 Symmetric Ciphers
  50. =over 4
  51. =item AES, see L<EVP_CIPHER-AES(7)>
  52. =item ARIA, see L<EVP_CIPHER-ARIA(7)>
  53. =item CAMELLIA, see L<EVP_CIPHER-CAMELLIA(7)>
  54. =item 3DES, see L<EVP_CIPHER-DES(7)>
  55. =item SM4, see L<EVP_CIPHER-SM4(7)>
  56. =item ChaCha20, see L<EVP_CIPHER-CHACHA(7)>
  57. =item ChaCha20-Poly1305, see L<EVP_CIPHER-CHACHA(7)>
  58. =item NULL, see L<EVP_CIPHER-NULL(7)>
  59. =back
  60. =head2 Message Authentication Code (MAC)
  61. =over 4
  62. =item BLAKE2, see L<EVP_MAC-BLAKE2(7)>
  63. =item CMAC, see L<EVP_MAC-CMAC(7)>
  64. =item GMAC, see L<EVP_MAC-GMAC(7)>
  65. =item HMAC, see L<EVP_MAC-HMAC(7)>
  66. =item KMAC, see L<EVP_MAC-KMAC(7)>
  67. =item SIPHASH, see L<EVP_MAC-Siphash(7)>
  68. =item POLY1305, see L<EVP_MAC-Poly1305(7)>
  69. =back
  70. =head2 Key Derivation Function (KDF)
  71. =over 4
  72. =item HKDF, see L<EVP_KDF-HKDF(7)>
  73. =item TLS13-KDF, see L<EVP_KDF-TLS13_KDF(7)>
  74. =item SSKDF, see L<EVP_KDF-SS(7)>
  75. =item PBKDF2, see L<EVP_KDF-PBKDF2(7)>
  76. =item PKCS12KDF, see L<EVP_KDF-PKCS12KDF(7)>
  77. =item SSHKDF, see L<EVP_KDF-SSHKDF(7)>
  78. =item TLS1-PRF, see L<EVP_KDF-TLS1_PRF(7)>
  79. =item KBKDF, see L<EVP_KDF-KB(7)>
  80. =item X942KDF-ASN1, see L<EVP_KDF-X942-ASN1(7)>
  81. =item X942KDF-CONCAT, see L<EVP_KDF-X942-CONCAT(7)>
  82. =item X963KDF, see L<EVP_KDF-X963(7)>
  83. =item SCRYPT, see L<EVP_KDF-SCRYPT(7)>
  84. =item KRB5KDF, see L<EVP_KDF-KRB5KDF(7)>
  85. =item HMAC-DRBG, see L<EVP_KDF-HMAC-DRBG(7)>
  86. =item ARGON2, see L<EVP_KDF-ARGON2(7)>
  87. =back
  88. =head2 Key Exchange
  89. =over 4
  90. =item DH, see L<EVP_KEYEXCH-DH(7)>
  91. =item ECDH, see L<EVP_KEYEXCH-ECDH(7)>
  92. =item X25519, see L<EVP_KEYEXCH-X25519(7)>
  93. =item X448, see L<EVP_KEYEXCH-X448(7)>
  94. =item TLS1-PRF
  95. =item HKDF
  96. =item SCRYPT
  97. =back
  98. =head2 Asymmetric Signature
  99. =over 4
  100. =item DSA, see L<EVP_SIGNATURE-DSA(7)>
  101. =item RSA, see L<EVP_SIGNATURE-RSA(7)>
  102. =item ED25519, see L<EVP_SIGNATURE-ED25519(7)>
  103. =item ED448, see L<EVP_SIGNATURE-ED448(7)>
  104. =item ECDSA, see L<EVP_SIGNATURE-ECDSA(7)>
  105. =item SM2
  106. =item HMAC, see L<EVP_SIGNATURE-HMAC(7)>
  107. =item SIPHASH, see L<EVP_SIGNATURE-Siphash(7)>
  108. =item POLY1305, see L<EVP_SIGNATURE-Poly1305(7)>
  109. =item CMAC, see L<EVP_SIGNATURE-CMAC(7)>
  110. =back
  111. =head2 Asymmetric Cipher
  112. =over 4
  113. =item RSA, see L<EVP_ASYM_CIPHER-RSA(7)>
  114. =item SM2, see L<EVP_ASYM_CIPHER-SM2(7)>
  115. =back
  116. =head2 Asymmetric Key Encapsulation
  117. =over 4
  118. =item RSA, see L<EVP_KEM-RSA(7)>
  119. =item X25519, see L<EVP_KEM-X25519(7)>
  120. =item X448, see L<EVP_KEM-X448(7)>
  121. =item EC, see L<EVP_KEM-EC(7)>
  122. =back
  123. =head2 Asymmetric Key Management
  124. =over 4
  125. =item DH, see L<EVP_KEYMGMT-DH(7)>
  126. =item DHX, see L<EVP_KEYMGMT-DHX(7)>
  127. =item DSA, see L<EVP_KEYMGMT-DSA(7)>
  128. =item RSA, see L<EVP_KEYMGMT-RSA(7)>
  129. =item RSA-PSS
  130. =item EC, see L<EVP_KEYMGMT-EC(7)>
  131. =item X25519, see L<EVP_KEYMGMT-X25519(7)>
  132. =item X448, see L<EVP_KEYMGMT-X448(7)>
  133. =item ED25519, see L<EVP_KEYMGMT-ED25519(7)>
  134. =item ED448, see L<EVP_KEYMGMT-ED448(7)>
  135. =item TLS1-PRF
  136. =item HKDF
  137. =item SCRYPT
  138. =item HMAC, see L<EVP_KEYMGMT-HMAC(7)>
  139. =item SIPHASH, see L<EVP_KEYMGMT-Siphash(7)>
  140. =item POLY1305, see L<EVP_KEYMGMT-Poly1305(7)>
  141. =item CMAC, see L<EVP_KEYMGMT-CMAC(7)>
  142. =item SM2, see L<EVP_KEYMGMT-SM2(7)>
  143. =back
  144. =head2 Random Number Generation
  145. =over 4
  146. =item CTR-DRBG, see L<EVP_RAND-CTR-DRBG(7)>
  147. =item HASH-DRBG, see L<EVP_RAND-HASH-DRBG(7)>
  148. =item HMAC-DRBG, see L<EVP_RAND-HMAC-DRBG(7)>
  149. =item SEED-SRC, see L<EVP_RAND-SEED-SRC(7)>
  150. =item TEST-RAND, see L<EVP_RAND-TEST-RAND(7)>
  151. =back
  152. In addition to this provider, the "SEED-SRC" algorithm is also available in the
  153. base provider.
  154. =head2 Asymmetric Key Encoder
  155. =over 4
  156. =item RSA
  157. =item RSA-PSS
  158. =item DH
  159. =item DHX
  160. =item DSA
  161. =item EC
  162. =item ED25519
  163. =item ED448
  164. =item X25519
  165. =item X448
  166. =item SM2
  167. =back
  168. In addition to this provider, all of these encoding algorithms are also
  169. available in the base provider. Some of these algorithms may be used in
  170. combination with the FIPS provider.
  171. =head2 Asymmetric Key Decoder
  172. =over 4
  173. =item RSA
  174. =item RSA-PSS
  175. =item DH
  176. =item DHX
  177. =item DSA
  178. =item EC
  179. =item ED25519
  180. =item ED448
  181. =item X25519
  182. =item X448
  183. =item SM2
  184. =item DER
  185. =back
  186. In addition to this provider, all of these decoding algorithms are also
  187. available in the base provider. Some of these algorithms may be used in
  188. combination with the FIPS provider.
  189. =head2 Stores
  190. =over 4
  191. =item file
  192. =item org.openssl.winstore, see L<OSSL_STORE-winstore(7)>
  193. =back
  194. In addition to this provider, all of these store algorithms are also
  195. available in the base provider.
  196. =head1 SEE ALSO
  197. L<openssl-core.h(7)>, L<openssl-core_dispatch.h(7)>, L<provider(7)>,
  198. L<OSSL_PROVIDER-base(7)>
  199. =head1 HISTORY
  200. The RIPEMD160 digest was added to the default provider in OpenSSL 3.0.7.
  201. All other functionality was added in OpenSSL 3.0.
  202. =head1 COPYRIGHT
  203. Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved.
  204. Licensed under the Apache License 2.0 (the "License"). You may not use
  205. this file except in compliance with the License. You can obtain a copy
  206. in the file LICENSE in the source distribution or at
  207. L<https://www.openssl.org/source/license.html>.
  208. =cut