Files
ServerSync/lib/nacl/bindings/__pycache__/crypto_pwhash.cpython-314.pyc

224 lines
25 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
u<10>i<EFBFBD>I<00><00>r a<00>Rt<>0t^RIt^RIHt^RIHt^RIHtH t ^RIH
t
] !] P4t Rt^t^t^t^t^t^t^t^t^t^t^t^t^t^t] 'Ed(]P:!]P<!R] P>!444R,t] P@!4t] PB!4t] PD!4t] PF!4t] PH!4t] PJ!4t] PL!4t] PN!4t] PP!4t] PR!4t] PT!4t] PV!4t] PX!4t] PZ!4t] P\!4t/]^k] P`!4t1]^k] Pd!4t3]^k] Ph!4t5]^k] Pl!4t7]^k] Pp!4t9]^k] Pt!4t;]^k] Px!4t=]^k] P|!4t?]^k]P:!]P<!R] P<>!444R,tA]^ k] P<>!4tC]^
k] P<>!4tE]^ k] P<>!4tG]^ k] P<>!4tI]^ k] P<>!4tK]^k] P<>!4tM]^k] P<>!4tO]^k] P<>!4tQ]^k] P<>!4tS]^k] P<>!4tU]^k]P:!]P<!R] P<>!444R,tW]^k] P<>!4tY]^k] P<>!4t[]^k] P<>!4t]]^k] P<>!4t_]^k] P<>!4ta]^k] P<>!4tc]^k] P<>!4te]^k] P<>!4tg]^k] P<>!4ti]^k] P<>!4tk]^k]tl]tm]tn]to]tp]tqRtr^?tsRttRtu]u3RR lltvR
R ltw^@]u3R R lltx]l]m3RRlltyRRltzRRlt{RRlt|RRlt}RRlt~]~tR#)<1E>N)<01>Tuple)<02>ffi<66>lib)<01>ensure<72><00>char *<2A>NNNc
<00>L<00>V^8<>dQhR\R\R\R\RR/#)<07><00>n<>r<>p<>maxmem<65>returnN<6E><01>int)<01>formats"<22>B/tmp/pip-target-zhdecbcm/lib/python/nacl/bindings/crypto_pwhash.py<70> __annotate__r<00>s4<00><00>'<06>'<06>
<EFBFBD>'<06><12>'<06><1A>'<06>$'<27>'<06> <09>'rc<00><><00>\V^8gR\PR7\V^8gR\PR7\W^,
,^8HR\PR7\V^8<>R\PR7\V\V, 8*RP \4\PR7\V^^V,,8\PR7V^<5E>,V,p\
^<5E>, p\V^,WQ, 8*\PR7^ V,V^,,^,p\V\
V,
8*\PR7\V\ PV,
8*\PR7\WF,V8*R\PR7R#) rzInvalid block size<7A><01>raisingzInvalid parallelization factorz Cost factor must be a power of 2zCost factor must be at least 2zp*r is greater than {}z6Memory limit would be exceeded with the chosen n, r, pN)r<00>exc<78>
ValueError<EFBFBD> SCRYPT_PR_MAXr<00>
UINT64_MAX<EFBFBD>sys<79>maxsize)r r rr<00>Blen<65>i<>Vlens&&&& r<00>_check_memory_occupationr"<00>sB<00><00> <0B>1<EFBFBD><01>6<EFBFBD>'<27><13><1E><1E>@<40>
<EFBFBD>1<EFBFBD><01>6<EFBFBD>3<>S<EFBFBD>^<5E>^<5E>L<>
<EFBFBD>
<EFBFBD>!<21>e<EFBFBD><1B><11><1A>*<2A><13><0E><0E><06>  <0B>1<EFBFBD>q<EFBFBD>5<EFBFBD>2<>C<EFBFBD>N<EFBFBD>N<EFBFBD>K<>
<EFBFBD> <09>]<5D>Q<EFBFBD> <1E><1E> <20>'<27>'<27> <0A>6<><13><0E><0E><06>  <0B>1<EFBFBD><01>b<EFBFBD>1<EFBFBD>f<EFBFBD> <0A> <1E><03><0E><0E>7<> <0C>s<EFBFBD>7<EFBFBD>Q<EFBFBD>;<3B>D<EFBFBD><12>S<EFBFBD><18>A<EFBFBD>
<EFBFBD>1<EFBFBD>q<EFBFBD>5<EFBFBD>A<EFBFBD>E<EFBFBD>><3E>3<EFBFBD>><3E>><3E>2<> <0A><01>6<EFBFBD>Q<EFBFBD><11>U<EFBFBD> <1B>a<EFBFBD> <1F>D<EFBFBD>
<EFBFBD>4<EFBFBD>:<3A><04>$<24> $<24>c<EFBFBD>n<EFBFBD>n<EFBFBD>=<3D>
<EFBFBD>4<EFBFBD>3<EFBFBD>;<3B>;<3B><14>%<25> %<25>s<EFBFBD>~<7E>~<7E>><3E>
<EFBFBD> <0C> <0B>v<EFBFBD><1D>@<40><13><0E><0E>rc <00>h<00>V^8<>dQhR\R\R\\\\3,/#)r <00>opslimit<69>memlimitr)rr)rs"rrr<00>s/<00><00><18><18><11><18> <20><18>
<EFBFBD>3<EFBFBD><03>S<EFBFBD>=<3D><19>rc<04>v<00>VR8dRp^pW^ ,8d>^pV^V,,p\^^?4Fp^V,V^,8<>gKMd MaW^<5E>,,p\^^?4Fp^V,V^,8<>gKM V^,^X,,pVR8<>dRpWb,pXW#3#)z/Python implementation of libsodium's pickparamsi<00><00><><EFBFBD><EFBFBD>?)<01>range)r$r%r r<00>maxn<78>n_log2<67>maxrps&& r<00> nacl_bindings_pick_scrypt_paramsr,<00>s<><00><00>
<10>%<25><17><18><08> <09>A<EFBFBD><0F>r<EFBFBD>><3E>"<22> <0A><01><17>A<EFBFBD><01>E<EFBFBD>"<22><04><1B>A<EFBFBD>r<EFBFBD>l<EFBFBD>F<EFBFBD><11>6<EFBFBD> <09>d<EFBFBD>a<EFBFBD>i<EFBFBD>(<28><15>#<23><18><03>G<EFBFBD>$<24><04><1B>A<EFBFBD>r<EFBFBD>l<EFBFBD>F<EFBFBD><11>6<EFBFBD> <09>T<EFBFBD>Q<EFBFBD>Y<EFBFBD>&<26><15>#<23><1A>Q<EFBFBD><1D>A<EFBFBD>v<EFBFBD>I<EFBFBD>.<2E><05> <10>:<3A> <1D><1E>E<EFBFBD> <11>J<EFBFBD><01> <11>1<EFBFBD><<3C>rc<00>x<00>V^8<>dQhR\R\R\R\R\R\R\R\/#) r <00>passwd<77>saltr r r<00>dklenrr<00><02>bytesr)rs"rrr sX<00><00>99<>99<> <11>99<>
<0F>99<> <0B>99<> <0B> 99<>
 <0B> 99<> <0F> 99<> <10>99<> <0B>99rc <04><><00>\\R\PR7\\ V\
4\ R7\\ V\
4\ R7\\ V\
4\ R7\\ V\4\ R7\\ V\4\ R7\W#WF4\P!RV4p\P!V\V4V\V4W#WGV4 p\V^8HR\PR7\P!\P !RV4V4R,#)aR
Derive a cryptographic key using the ``passwd`` and ``salt``
given as input.
The work factor can be tuned by by picking different
values for the parameters
:param bytes passwd:
:param bytes salt:
:param bytes salt: *must* be *exactly* :py:const:`.SALTBYTES` long
:param int dklen:
:param int opslimit:
:param int n:
:param int r: block size,
:param int p: the parallelism factor
:param int maxmem: the maximum available memory available for scrypt's
operations
:rtype: bytes
:raises nacl.exceptions.UnavailableError: If called when using a
minimal build of libsodium.
<EFBFBD>Not available in minimal buildrz uint8_t[]<5D>$Unexpected failure in key derivationrr )r<00>&has_crypto_pwhash_scryptsalsa208sha256r<00>UnavailableError<6F>
isinstancer<00> TypeErrorr2r"r<00>newr<00>%crypto_pwhash_scryptsalsa208sha256_ll<6C>len<65> RuntimeError<6F>buffer<65>cast) r.r/r r rr0r<00>buf<75>rets &&&&&&& rr;r; s<><00><00>< <0B>.<2E>(<28><13>$<24>$<24><06>  <0B>:<3A>a<EFBFBD><13> <1D>y<EFBFBD>1<>
<EFBFBD>:<3A>a<EFBFBD><13> <1D>y<EFBFBD>1<>
<EFBFBD>:<3A>a<EFBFBD><13> <1D>y<EFBFBD>1<>
<EFBFBD>:<3A>f<EFBFBD>e<EFBFBD> $<24>i<EFBFBD>8<>
<EFBFBD>:<3A>d<EFBFBD>E<EFBFBD> "<22>I<EFBFBD>6<><1C>Q<EFBFBD>1<EFBFBD>-<2D>
<0A>'<27>'<27>+<2B>u<EFBFBD>
%<25>C<EFBFBD>
<0A>
3<EFBFBD>
3<EFBFBD><0E><03>F<EFBFBD> <0B>T<EFBFBD>3<EFBFBD>t<EFBFBD>9<EFBFBD>a<EFBFBD>A<EFBFBD>E<EFBFBD> <06>C<EFBFBD> <0B> <0B>q<EFBFBD><08>.<2E><13> <20> <20><06> <0F>:<3A>:<3A>c<EFBFBD>h<EFBFBD>h<EFBFBD>x<EFBFBD><13>-<2D>u<EFBFBD> 5<>a<EFBFBD> 8<>8rc<00>H<00>V^8<>dQhR\R\R\R\/#)r r.r$r%rr1)rs"rrrEs0<00><00>)<1B>)<1B> <11>)<1B><11>)<1B><12>)<1B> <0B> )rc<04>$<00>\\R\PR7\P
!R\ 4p\P!W0\V4W4p\V^8HR\PR7\P!V4#)aL
Derive a cryptographic key using the ``passwd`` and ``salt``
given as input, returning a string representation which includes
the salt and the tuning parameters.
The returned string can be directly stored as a password hash.
See :py:func:`.crypto_pwhash_scryptsalsa208sha256` for a short
discussion about ``opslimit`` and ``memlimit`` values.
:param bytes passwd:
:param int opslimit:
:param int memlimit:
:return: serialized key hash, including salt and tuning parameters
:rtype: bytes
:raises nacl.exceptions.UnavailableError: If called when using a
minimal build of libsodium.
r4r<00>char[]z&Unexpected failure in password hashing) rr6rr7rr:<00>SCRYPT_STRBYTESr<00>&crypto_pwhash_scryptsalsa208sha256_strr<r=<00>string)r.r$r%r@rAs&&& rrFrFEsu<00><00>. <0B>.<2E>(<28><13>$<24>$<24><06> <0E>'<27>'<27>(<28>O<EFBFBD>
,<2C>C<EFBFBD>
<0A>
4<EFBFBD>
4<EFBFBD> <0B>S<EFBFBD><16>[<5B>(<28> <06>C<EFBFBD> <0B> <0B>q<EFBFBD><08>0<><13> <20> <20><06> <0F>:<3A>:<3A>c<EFBFBD>?<3F>rc<00><<00>V^8<>dQhR\R\R\/#<00>r <00> passwd_hashr.r<00>r2<00>bool)rs"rrrqs$<00><00><10><10><16><10> %<25><10> <09>rc<04>*<00>\\R\PR7\\ V4\
^,
8HR\P R7\P!W\ V44p\V^8HR\PR7R#)a
Verifies the ``passwd`` against the ``passwd_hash`` that was generated.
Returns True or False depending on the success
:param passwd_hash: bytes
:param passwd: bytes
:rtype: boolean
:raises nacl.exceptions.UnavailableError: If called when using a
minimal build of libsodium.
r4rzInvalid password hash<73>Wrong passwordT)
rr6rr7r<rErr<00>-crypto_pwhash_scryptsalsa208sha256_str_verify<66>InvalidkeyError<6F>rJr.rAs&& rrOrOqsx<00><00> <0B>.<2E>(<28><13>$<24>$<24><06>  <0B> <0B>K<EFBFBD><18>O<EFBFBD>a<EFBFBD>/<2F>/<2F><1F><13><0E><0E><06> <0E>
;<3B>
;<3B><13>S<EFBFBD><16>[<5B> <06>C<EFBFBD> <0B>3<EFBFBD>!<21>8<EFBFBD>%<25>s<EFBFBD>/B<>/B<>C<> rc<00>@<00>V^8<>dQhR\R\R\RR/#)r r$r%<00>algrNr)rs"rrr<00>s(<00><00>55<>55<>s<EFBFBD>55<>c<EFBFBD>55<><03>55<><04>55rc<00><><00>V\8Xd<>V\8d*\P!RP \44hV\
8<>d*\P!RP \
44hV\ 8d*\P!RP \ 44hV\8<>d*\P!RP \44hR#V\8Xd<>V\8d*\P!RP \44hV\8<>d*\P!RP \44hV\8d*\P!RP \44hV\8<>d*\P!RP \44hR#\P!R4h)z"memlimit must be at least {} bytesz!memlimit must be at most {} byteszopslimit must be at least {}zopslimit must be at most {}zUnsupported algorithmN)<0E>crypto_pwhash_ALG_ARGON2I13<31>"crypto_pwhash_argon2i_MEMLIMIT_MINrrr<00>"crypto_pwhash_argon2i_MEMLIMIT_MAX<41>"crypto_pwhash_argon2i_OPSLIMIT_MIN<49>"crypto_pwhash_argon2i_OPSLIMIT_MAX<41>crypto_pwhash_ALG_ARGON2ID13<31>#crypto_pwhash_argon2id_MEMLIMIT_MIN<49>#crypto_pwhash_argon2id_MEMLIMIT_MAX<41>#crypto_pwhash_argon2id_OPSLIMIT_MIN<49>#crypto_pwhash_argon2id_OPSLIMIT_MAXr9)r$r%rSs&&&r<00>_check_argon2_limits_algr_<00>s<><00><00>
<EFBFBD>)<29>)<29> <13>8<> 8<><15>.<2E>.<2E>4<>;<3B>;<3B>6<><12><0E> <0E>
<16>:<3A> :<3A><15>.<2E>.<2E>3<>:<3A>:<3A>6<><12><0E> <0E>
<14>8<> 8<><15>.<2E>.<2E>.<2E>5<>5<>6<><12><0E> <0E>
<16>:<3A> :<3A><15>.<2E>.<2E>-<2D>4<>4<>6<><12><0E> <0E>;<3B>
<0A>,<2C> ,<2C> <13>9<> 9<><15>.<2E>.<2E>4<>;<3B>;<3B>7<><12><0E> <0E>
<16>;<3B> ;<3B><15>.<2E>.<2E>3<>:<3A>:<3A>7<><12><0E> <0E>
<14>9<> 9<><15>.<2E>.<2E>.<2E>5<>5<>7<><12><0E> <0E>
<16>;<3B> ;<3B><15>.<2E>.<2E>-<2D>4<>4<>7<><12><0E> <0E><<3C><12>m<EFBFBD>m<EFBFBD>3<>4<>4rc<00>l<00>V^8<>dQhR\R\R\R\R\R\R\/#)r <00>outlenr.r/r$r%rSr)rr2)rs"rrr<00>sW<00><00>D)<29>D)<29> <0F>D)<29> <11>D)<29> <10>D)<29><12> D)<29>
<12> D)<29>
<0A> D)<29> <0B>D)rc
<04><><00>\\V\4\PR7\\V\4\PR7\\V\4\PR7\\V\4\PR7\\V\
4\PR7\ V4\8wd*\P!RP\44hV\8d*\P!RP\44hV\8<>d*\P!RP\44h\W4V4\P!RV4p\P !W`V\ V4W#WE4p\V^8HR\P"R7\P$!W`4R,#)a<>
Derive a raw cryptographic key using the ``passwd`` and the ``salt``
given as input to the ``alg`` algorithm.
:param outlen: the length of the derived key
:type outlen: int
:param passwd: The input password
:type passwd: bytes
:param salt:
:type salt: bytes
:param opslimit: computational cost
:type opslimit: int
:param memlimit: memory cost
:type memlimit: int
:param alg: algorithm identifier
:type alg: int
:return: derived key
:rtype: bytes
rz"salt must be exactly {} bytes longz*derived key must be at least {} bytes longz)derived key must be at most {} bytes longzunsigned char[]r5r )rr8rrr9r2r<<00>crypto_pwhash_SALTBYTESrr<00>crypto_pwhash_BYTES_MIN<49>crypto_pwhash_BYTES_MAXr_rr:r<00> crypto_pwhashr=r>)rar.r/r$r%rS<00>outbufrAs&&&&&& r<00>crypto_pwhash_algrh<00>se<00><00>6 <0B>:<3A>f<EFBFBD>c<EFBFBD> "<22>C<EFBFBD>M<EFBFBD>M<EFBFBD>:<3A>
<EFBFBD>:<3A>h<EFBFBD><03> $<24>c<EFBFBD>m<EFBFBD>m<EFBFBD><<3C>
<EFBFBD>:<3A>h<EFBFBD><03> $<24>c<EFBFBD>m<EFBFBD>m<EFBFBD><<3C>
<EFBFBD>:<3A>c<EFBFBD>3<EFBFBD> <1F><13><1D><1D>7<>
<EFBFBD>:<3A>f<EFBFBD>e<EFBFBD> $<24>c<EFBFBD>m<EFBFBD>m<EFBFBD><<3C>
<EFBFBD>4<EFBFBD>y<EFBFBD>+<2B>+<2B><11>n<EFBFBD>n<EFBFBD> 0<> 7<> 7<>'<27> <0E>
<EFBFBD>
<EFBFBD> <0E>'<27>'<27><11>n<EFBFBD>n<EFBFBD> 8<> ?<3F> ?<3F>'<27> <0E>
<EFBFBD>
<EFBFBD>
<10>)<29> )<29><11>n<EFBFBD>n<EFBFBD> 7<> ><3E> ><3E>'<27> <0E>
<EFBFBD>
<EFBFBD> <1D>X<EFBFBD><13>5<> <10>W<EFBFBD>W<EFBFBD>&<26><06> /<2F>F<EFBFBD>
<0A>
<1B>
<1B><0E><06><03>F<EFBFBD> <0B>T<EFBFBD>X<EFBFBD> <06>C<EFBFBD> <0B> <0B>q<EFBFBD><08>.<2E><13> <20> <20><06> <0F>:<3A>:<3A>f<EFBFBD> %<25>a<EFBFBD> (<28>(rc
<00>T<00>V^8<>dQhR\R\R\R\R\/#)r r.r$r%rSrr1)rs"rrrs:<00><00>(<1E>(<1E> <11>(<1E><11>(<1E><12>(<1E>
<0A> (<1E>
 <0B> (rc<04><><00>\\V\4\R7\\V\4\R7\\V\4\R7\ WV4\ P!R^<5E>4p\P!W@\V4WV4p\V^8HR\PR7\ P!V4#)a<>
Derive a cryptographic key using the ``passwd`` given as input
and a random salt, returning a string representation which
includes the salt, the tuning parameters and the used algorithm.
:param passwd: The input password
:type passwd: bytes
:param opslimit: computational cost
:type opslimit: int
:param memlimit: memory cost
:type memlimit: int
:param alg: The algorithm to use
:type alg: int
:return: serialized derived key and parameters
:rtype: bytes
rrDr5)rr8rr9r2r_rr:r<00>crypto_pwhash_str_algr<rr=rG)r.r$r%rSrgrAs&&&& rrkrks<><00><00>, <0B>:<3A>h<EFBFBD><03> $<24>i<EFBFBD>8<>
<EFBFBD>:<3A>h<EFBFBD><03> $<24>i<EFBFBD>8<>
<EFBFBD>:<3A>f<EFBFBD>e<EFBFBD> $<24>i<EFBFBD>8<><1C>X<EFBFBD><13>5<> <10>W<EFBFBD>W<EFBFBD>X<EFBFBD>s<EFBFBD> #<23>F<EFBFBD>
<0A>
#<23>
#<23><0E><03>F<EFBFBD> <0B>X<EFBFBD><13> <06>C<EFBFBD> <0B> <0B>q<EFBFBD><08>.<2E><13> <20> <20><06> <0F>:<3A>:<3A>f<EFBFBD> <1D>rc<00><<00>V^8<>dQhR\R\R\/#rIrK)rs"rrr<s!<00><00><10><10>%<25><10><15><10>4<EFBFBD>rc<04>P<00>\\V\4\R7\\V\4\R7\\ V4^8*R\
P R7\P!W\ V44p\V^8HR\
PR7R#)a
Verifies the ``passwd`` against a given password hash.
Returns True on success, raises InvalidkeyError on failure
:param passwd_hash: saved password hash
:type passwd_hash: bytes
:param passwd: password to be checked
:type passwd: bytes
:return: success
:rtype: boolean
rz#Hash must be at most 127 bytes longrNT)
rr8r2r9r<rrr<00>crypto_pwhash_str_verifyrPrQs&& rrnrn<sw<00><00> <0B>:<3A>k<EFBFBD>5<EFBFBD> )<29>9<EFBFBD>=<3D>
<EFBFBD>:<3A>f<EFBFBD>e<EFBFBD> $<24>i<EFBFBD>8<>
<EFBFBD> <0B>K<EFBFBD><18>C<EFBFBD><1F>-<2D><13><0E><0E><06> <0E>
&<26>
&<26>{<7B>C<EFBFBD><06>K<EFBFBD>
H<EFBFBD>C<EFBFBD>
<EFBFBD>3<EFBFBD>!<21>8<EFBFBD>%<25>s<EFBFBD>/B<>/B<>C<> rc<00><><00>V^8<>dQh/^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R &^ \9d
\;R
&^
\9d
\;R &^ \9d
\;R &^ \9d
\;R &^ \9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&^\9d
\;R&#) r rUrZ<00>crypto_pwhash_ALG_DEFAULTrc<00>crypto_pwhash_STRBYTES<45>crypto_pwhash_PASSWD_MIN<49>crypto_pwhash_PASSWD_MAXrdre<00>crypto_pwhash_argon2i_STRPREFIXrVrWrXrY<00>*crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE<56>*crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE<56>'crypto_pwhash_argon2i_OPSLIMIT_MODERATE<54>'crypto_pwhash_argon2i_MEMLIMIT_MODERATE<54>(crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE<56>(crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE<56> crypto_pwhash_argon2id_STRPREFIXr[r\r]r^<00>+crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE<56>+crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE<56>(crypto_pwhash_argon2id_OPSLIMIT_MODERATE<54>(crypto_pwhash_argon2id_MEMLIMIT_MODERATE<54>)crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE<56>)crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE)<03>__conditional_annotations__rr2)rs"rrrs<><00><00>
<EFBFBD>
<EFBFBD>VE<01>D<>S<EFBFBD>D<>W <0B>XG<01>F<>c<EFBFBD>F<>Y <0B>ZA<01>@<40>3<EFBFBD>@<40>[ <0B>^=<3D><<3C><13><<3C>_ <0B>`;<3B>:<3A><03>:<3A>a <0B>d?<3F>><3E>#<23>><3E>e <0B>f?<3F>><3E>#<23>><3E>g <0B>h=<3D><<3C><13><<3C>i <0B>j=<3D><<3C><13><<3C>k <0B>n<05><05><15><05>o <0B>t<02><02>C<EFBFBD><02>u <0B>z<02><02>C<EFBFBD><02>{ <0B>@<02><02>C<EFBFBD><02>A <0B>F<02><02>C<EFBFBD><02>G <0B>L<02><02>C<EFBFBD><02>M <0B>R<02><02>C<EFBFBD><02>S <0B>X<02><02><13><02>Y <0B>^<02><02><13><02>_ <0B>d<02><02>#<23><02>e <0B>j<02><02>#<23><02>k <0B>r<05><05>%<25><05>s <0B>x<02><02>S<EFBFBD><02>y <0B>~<02><02>S<EFBFBD><02> <0B>D<02><02>S<EFBFBD><02>E <0B>J<02><02>S<EFBFBD><02>K <0B>P<02><02>S<EFBFBD><02>Q <0B>V<02><02>S<EFBFBD><02>W <0B>\<02><02>#<23><02>] <0B>b<02><02>#<23><02>c <0B>h<02><02>3<EFBFBD><02>i <0B>n<02><02>3<EFBFBD><02>o rr'l<00><EFBFBD><EFBFBD><EFBFBD>i)<29>r<EFBFBD>r<00>typingr<00>nacl.exceptions<6E>
exceptionsr<00> nacl._sodiumrrrrL<00>-PYNACL_HAS_CRYPTO_PWHASH_SCRYPTSALSA208SHA256r6<00>,crypto_pwhash_scryptsalsa208sha256_STRPREFIX<49>,crypto_pwhash_scryptsalsa208sha256_SALTBYTES<45>+crypto_pwhash_scryptsalsa208sha256_STRBYTES<45>-crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN<49>-crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX<41>,crypto_pwhash_scryptsalsa208sha256_BYTES_MIN<49>,crypto_pwhash_scryptsalsa208sha256_BYTES_MAX<41>/crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN<49>/crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX<41>/crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN<49>/crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX<41>7crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE<56>7crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE<56>5crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE<56>5crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVErGr?<00>,crypto_pwhash_scryptsalsa208sha256_strprefix<69>,crypto_pwhash_scryptsalsa208sha256_saltbytes<65>+crypto_pwhash_scryptsalsa208sha256_strbytes<65>-crypto_pwhash_scryptsalsa208sha256_passwd_min<69>-crypto_pwhash_scryptsalsa208sha256_passwd_max<61>,crypto_pwhash_scryptsalsa208sha256_bytes_min<69>,crypto_pwhash_scryptsalsa208sha256_bytes_max<61>/crypto_pwhash_scryptsalsa208sha256_memlimit_min<69>/crypto_pwhash_scryptsalsa208sha256_memlimit_max<61>/crypto_pwhash_scryptsalsa208sha256_opslimit_min<69>/crypto_pwhash_scryptsalsa208sha256_opslimit_max<61>7crypto_pwhash_scryptsalsa208sha256_opslimit_interactive<76>7crypto_pwhash_scryptsalsa208sha256_memlimit_interactive<76>5crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive<76>5crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive<76>crypto_pwhash_alg_argon2i13rU<00>crypto_pwhash_alg_argon2id13rZ<00>crypto_pwhash_alg_defaultrp<00>crypto_pwhash_saltbytesrc<00>crypto_pwhash_strbytesrq<00>crypto_pwhash_passwd_minrr<00>crypto_pwhash_passwd_maxrs<00>crypto_pwhash_bytes_minrd<00>crypto_pwhash_bytes_maxre<00>crypto_pwhash_argon2i_strprefixrt<00>"crypto_pwhash_argon2i_memlimit_minrV<00>"crypto_pwhash_argon2i_memlimit_maxrW<00>"crypto_pwhash_argon2i_opslimit_minrX<00>"crypto_pwhash_argon2i_opslimit_maxrY<00>*crypto_pwhash_argon2i_opslimit_interactiveru<00>*crypto_pwhash_argon2i_memlimit_interactiverv<00>'crypto_pwhash_argon2i_opslimit_moderaterw<00>'crypto_pwhash_argon2i_memlimit_moderaterx<00>(crypto_pwhash_argon2i_opslimit_sensitivery<00>(crypto_pwhash_argon2i_memlimit_sensitiverz<00> crypto_pwhash_argon2id_strprefixr{<00>#crypto_pwhash_argon2id_memlimit_minr[<00>#crypto_pwhash_argon2id_memlimit_maxr\<00>#crypto_pwhash_argon2id_opslimit_minr]<00>#crypto_pwhash_argon2id_opslimit_maxr^<00>+crypto_pwhash_argon2id_opslimit_interactiver|<00>+crypto_pwhash_argon2id_memlimit_interactiver}<00>(crypto_pwhash_argon2id_opslimit_moderater~<00>(crypto_pwhash_argon2id_memlimit_moderater<00>)crypto_pwhash_argon2id_opslimit_sensitiver<65><00>)crypto_pwhash_argon2id_memlimit_sensitiver<65><00>SCRYPT_OPSLIMIT_INTERACTIVE<56>SCRYPT_MEMLIMIT_INTERACTIVE<56>SCRYPT_OPSLIMIT_SENSITIVE<56>SCRYPT_MEMLIMIT_SENSITIVE<56>SCRYPT_SALTBYTESrEr<00>LOG2_UINT64_MAXr<00>SCRYPT_MAX_MEMr"r,r;rFrOr_rhrkrn<00> crypto_pwhash_argon2i_str_verifyr)r<>s@r<00><module>r<>sR<00><><01> <0B>
<EFBFBD><18><1D>!<21>"<22>*.<2E><07>5<>5<>*<02>&<26>03<30>,<2C>/0<>,<2C>./<2F>+<2B>01<30>-<2D>01<30>-<2D>/0<>,<2C>/0<>,<2C>23<32>/<2F>23<32>/<2F>23<32>/<2F>23<32>/<2F>:;<3B>7<>:;<3B>7<>89<38>5<>89<38>5<>)<29>)<29>36<33>:<3A>:<3A> <0B><08><08><18>3<EFBFBD>K<>K<>M<>N<>4<06><07>4 <09>0<> <0C>8<>8<>:<3A>1<> <0C>7<>7<>9<>0<> <0C>9<>9<>;<3B>2<> <0C>9<>9<>;<3B>2<> <0C>8<>8<>:<3A>1<> <0C>8<>8<>:<3A>1<> <0C>;<3B>;<3B>=<3D>4<> <0C>;<3B>;<3B>=<3D>4<> <0C>;<3B>;<3B>=<3D>4<> <0C>;<3B>;<3B>=<3D>4<> <0C>C<>C<>E<><<3C> <0C>C<>C<>E<><<3C> <0C>A<>A<>C<>:<3A> <0C>A<>A<>C<>:<3A>$'<27>#B<>#B<>#D<><1B>D<>$'<27>$D<>$D<>$F<><1C>F<>!$<24>!><3E>!><3E>!@<40><19>@<40>"<22>:<3A>:<3A><<3C><17><<3C>!<21>8<>8<>:<3A><16>:<3A> #<23> <<3C> <<3C> ><3E><18>><3E> #<23> <<3C> <<3C> ><3E><18>><3E>"<22>:<3A>:<3A><<3C><17><<3C>"<22>:<3A>:<3A><<3C><17><<3C>),<2C><1A><1A><07>H<EFBFBD>H<EFBFBD>X<EFBFBD>s<EFBFBD>:<3A>:<3A><<3C>=<3D>*<02><03>*<05><1F><05><08>*<2A>*<2A>,<2C>#<23><02><08>*<2A>*<2A>,<2C>#<23><02><08>*<2A>*<2A>,<2C>#<23><02><08>*<2A>*<2A>,<2C>#<23><02><08>2<>2<>4<>+<2B><02><08>2<>2<>4<>+<2B><02><08>/<2F>/<2F>1<>(<28><02><08>/<2F>/<2F>1<>(<28><02><08>0<>0<>2<>)<29><02><08>0<>0<>2<>)<29><02>+.<2E>*<2A>*<2A><07>H<EFBFBD>H<EFBFBD>X<EFBFBD>s<EFBFBD>;<3B>;<3B>=<3D>><3E>+<02><03>+<05> <20><05><08>+<2B>+<2B>-<2D>$<24><02><08>+<2B>+<2B>-<2D>$<24><02><08>+<2B>+<2B>-<2D>$<24><02><08>+<2B>+<2B>-<2D>$<24><02><08>3<>3<>5<>,<2C><02><08>3<>3<>5<>,<2C><02><08>0<>0<>2<>)<29><02><08>0<>0<>2<>)<29><02><08>1<>1<>3<>*<2A><02><08>1<>1<>3<>*<2A><02>
<<3C><1C><<3C><1C>:<3A><1A>:<3A><1A>@<01><10>=<3D><0F><1D> <0A><14><0F> <1A>
<EFBFBD>#<23><0E>+9<>'<06>T<18>L<14> <20>99<>|0<>/<2F>)<1B>X<10>B55<>pD)<29>N(<1E>V<10>6$<<3C> r