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

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. 

14 

15import nacl.bindings 

16 

17_argon2_strbytes_plus_one = nacl.bindings.crypto_pwhash_STRBYTES 

18 

19PWHASH_SIZE = _argon2_strbytes_plus_one - 1 

20SALTBYTES = nacl.bindings.crypto_pwhash_SALTBYTES 

21 

22PASSWD_MIN = nacl.bindings.crypto_pwhash_PASSWD_MIN 

23PASSWD_MAX = nacl.bindings.crypto_pwhash_PASSWD_MAX 

24 

25PWHASH_SIZE = _argon2_strbytes_plus_one - 1 

26 

27BYTES_MAX = nacl.bindings.crypto_pwhash_BYTES_MAX 

28BYTES_MIN = nacl.bindings.crypto_pwhash_BYTES_MIN 

29 

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 

33 

34 

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 

40 

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 

46 

47 .. versionadded:: 1.2 

48 """ 

49 return nacl.bindings.crypto_pwhash_str_verify(password_hash, password)