Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/PyNaCl-1.6.0.dev1-py3.8-linux-x86_64.egg/nacl/pwhash/_argon2.py: 93%
14 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-06 06:06 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-06 06:06 +0000
1# Copyright 2013 Donald Stufft and individual contributors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
15import nacl.bindings
17_argon2_strbytes_plus_one = nacl.bindings.crypto_pwhash_STRBYTES
19PWHASH_SIZE = _argon2_strbytes_plus_one - 1
20SALTBYTES = nacl.bindings.crypto_pwhash_SALTBYTES
22PASSWD_MIN = nacl.bindings.crypto_pwhash_PASSWD_MIN
23PASSWD_MAX = nacl.bindings.crypto_pwhash_PASSWD_MAX
25PWHASH_SIZE = _argon2_strbytes_plus_one - 1
27BYTES_MAX = nacl.bindings.crypto_pwhash_BYTES_MAX
28BYTES_MIN = nacl.bindings.crypto_pwhash_BYTES_MIN
30ALG_ARGON2I13 = nacl.bindings.crypto_pwhash_ALG_ARGON2I13
31ALG_ARGON2ID13 = nacl.bindings.crypto_pwhash_ALG_ARGON2ID13
32ALG_ARGON2_DEFAULT = nacl.bindings.crypto_pwhash_ALG_DEFAULT
35def verify(password_hash: bytes, password: bytes) -> bool:
36 """
37 Takes a modular crypt encoded argon2i or argon2id stored password hash
38 and checks if the user provided password will hash to the same string
39 when using the stored parameters
41 :param password_hash: password hash serialized in modular crypt() format
42 :type password_hash: bytes
43 :param password: user provided password
44 :type password: bytes
45 :rtype: boolean
47 .. versionadded:: 1.2
48 """
49 return nacl.bindings.crypto_pwhash_str_verify(password_hash, password)