libsodium (1.0.19)

(root)/
include/
sodium/
crypto_pwhash_scryptsalsa208sha256.h
       1  #ifndef crypto_pwhash_scryptsalsa208sha256_H
       2  #define crypto_pwhash_scryptsalsa208sha256_H
       3  
       4  #include <limits.h>
       5  #include <stddef.h>
       6  #include <stdint.h>
       7  
       8  #include "export.h"
       9  
      10  #ifdef __cplusplus
      11  # ifdef __GNUC__
      12  #  pragma GCC diagnostic ignored "-Wlong-long"
      13  # endif
      14  extern "C" {
      15  #endif
      16  
      17  #define crypto_pwhash_scryptsalsa208sha256_BYTES_MIN 16U
      18  SODIUM_EXPORT
      19  size_t crypto_pwhash_scryptsalsa208sha256_bytes_min(void);
      20  
      21  #define crypto_pwhash_scryptsalsa208sha256_BYTES_MAX \
      22      SODIUM_MIN(SODIUM_SIZE_MAX, 0x1fffffffe0ULL)
      23  SODIUM_EXPORT
      24  size_t crypto_pwhash_scryptsalsa208sha256_bytes_max(void);
      25  
      26  #define crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN 0U
      27  SODIUM_EXPORT
      28  size_t crypto_pwhash_scryptsalsa208sha256_passwd_min(void);
      29  
      30  #define crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX SODIUM_SIZE_MAX
      31  SODIUM_EXPORT
      32  size_t crypto_pwhash_scryptsalsa208sha256_passwd_max(void);
      33  
      34  #define crypto_pwhash_scryptsalsa208sha256_SALTBYTES 32U
      35  SODIUM_EXPORT
      36  size_t crypto_pwhash_scryptsalsa208sha256_saltbytes(void);
      37  
      38  #define crypto_pwhash_scryptsalsa208sha256_STRBYTES 102U
      39  SODIUM_EXPORT
      40  size_t crypto_pwhash_scryptsalsa208sha256_strbytes(void);
      41  
      42  #define crypto_pwhash_scryptsalsa208sha256_STRPREFIX "$7$"
      43  SODIUM_EXPORT
      44  const char *crypto_pwhash_scryptsalsa208sha256_strprefix(void);
      45  
      46  #define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN 32768U
      47  SODIUM_EXPORT
      48  size_t crypto_pwhash_scryptsalsa208sha256_opslimit_min(void);
      49  
      50  #define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX 4294967295U
      51  SODIUM_EXPORT
      52  size_t crypto_pwhash_scryptsalsa208sha256_opslimit_max(void);
      53  
      54  #define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN 16777216U
      55  SODIUM_EXPORT
      56  size_t crypto_pwhash_scryptsalsa208sha256_memlimit_min(void);
      57  
      58  #define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX \
      59      SODIUM_MIN(SIZE_MAX, 68719476736ULL)
      60  SODIUM_EXPORT
      61  size_t crypto_pwhash_scryptsalsa208sha256_memlimit_max(void);
      62  
      63  #define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE 524288U
      64  SODIUM_EXPORT
      65  size_t crypto_pwhash_scryptsalsa208sha256_opslimit_interactive(void);
      66  
      67  #define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE 16777216U
      68  SODIUM_EXPORT
      69  size_t crypto_pwhash_scryptsalsa208sha256_memlimit_interactive(void);
      70  
      71  #define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE 33554432U
      72  SODIUM_EXPORT
      73  size_t crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(void);
      74  
      75  #define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE 1073741824U
      76  SODIUM_EXPORT
      77  size_t crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(void);
      78  
      79  SODIUM_EXPORT
      80  int crypto_pwhash_scryptsalsa208sha256(unsigned char * const out,
      81                                         unsigned long long outlen,
      82                                         const char * const passwd,
      83                                         unsigned long long passwdlen,
      84                                         const unsigned char * const salt,
      85                                         unsigned long long opslimit,
      86                                         size_t memlimit)
      87              __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));
      88  
      89  SODIUM_EXPORT
      90  int crypto_pwhash_scryptsalsa208sha256_str(char out[crypto_pwhash_scryptsalsa208sha256_STRBYTES],
      91                                             const char * const passwd,
      92                                             unsigned long long passwdlen,
      93                                             unsigned long long opslimit,
      94                                             size_t memlimit)
      95              __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));
      96  
      97  SODIUM_EXPORT
      98  int crypto_pwhash_scryptsalsa208sha256_str_verify(const char * str,
      99                                                    const char * const passwd,
     100                                                    unsigned long long passwdlen)
     101              __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));
     102  
     103  SODIUM_EXPORT
     104  int crypto_pwhash_scryptsalsa208sha256_ll(const uint8_t * passwd, size_t passwdlen,
     105                                            const uint8_t * salt, size_t saltlen,
     106                                            uint64_t N, uint32_t r, uint32_t p,
     107                                            uint8_t * buf, size_t buflen)
     108              __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));
     109  
     110  SODIUM_EXPORT
     111  int crypto_pwhash_scryptsalsa208sha256_str_needs_rehash(const char * str,
     112                                                          unsigned long long opslimit,
     113                                                          size_t memlimit)
     114              __attribute__ ((warn_unused_result))  __attribute__ ((nonnull));
     115  
     116  #ifdef __cplusplus
     117  }
     118  #endif
     119  
     120  #endif