@@ -835,40 +835,42 @@ _blake2_blake2b_update_impl(Blake2Object *self, PyObject *data)
835835 Py_RETURN_NONE ;
836836}
837837
838- /*[clinic input]
839- _blake2.blake2b.digest
840-
841- Return the digest value as a bytes object.
842- [clinic start generated code]*/
843-
844- static PyObject *
845- _blake2_blake2b_digest_impl (Blake2Object * self )
846- /*[clinic end generated code: output=31ab8ad477f4a2f7 input=7d21659e9c5fff02]*/
838+ static uint8_t
839+ blake2_blake2b_compute_digest (Blake2Object * self , uint8_t * digest )
847840{
848- uint8_t digest [HACL_HASH_BLAKE2B_OUT_BYTES ];
849-
850- ENTER_HASHLIB (self );
851- uint8_t digest_length = 0 ;
852841 switch (self -> impl ) {
853842#if HACL_CAN_COMPILE_SIMD256
854843 case Blake2b_256 :
855- digest_length = Hacl_Hash_Blake2b_Simd256_digest (self -> blake2b_256_state , digest );
856- break ;
844+ return Hacl_Hash_Blake2b_Simd256_digest (
845+ self -> blake2b_256_state , digest ) ;
857846#endif
858847#if HACL_CAN_COMPILE_SIMD128
859848 case Blake2s_128 :
860- digest_length = Hacl_Hash_Blake2s_Simd128_digest (self -> blake2s_128_state , digest );
861- break ;
849+ return Hacl_Hash_Blake2s_Simd128_digest (
850+ self -> blake2s_128_state , digest ) ;
862851#endif
863852 case Blake2b :
864- digest_length = Hacl_Hash_Blake2b_digest (self -> blake2b_state , digest );
865- break ;
853+ return Hacl_Hash_Blake2b_digest (self -> blake2b_state , digest );
866854 case Blake2s :
867- digest_length = Hacl_Hash_Blake2s_digest (self -> blake2s_state , digest );
868- break ;
855+ return Hacl_Hash_Blake2s_digest (self -> blake2s_state , digest );
869856 default :
870857 Py_UNREACHABLE ();
871858 }
859+ }
860+
861+ /*[clinic input]
862+ _blake2.blake2b.digest
863+
864+ Return the digest value as a bytes object.
865+ [clinic start generated code]*/
866+
867+ static PyObject *
868+ _blake2_blake2b_digest_impl (Blake2Object * self )
869+ /*[clinic end generated code: output=31ab8ad477f4a2f7 input=7d21659e9c5fff02]*/
870+ {
871+ uint8_t digest_length = 0 , digest [HACL_HASH_BLAKE2B_OUT_BYTES ];
872+ ENTER_HASHLIB (self );
873+ digest_length = blake2_blake2b_compute_digest (self , digest );
872874 LEAVE_HASHLIB (self );
873875 return PyBytes_FromStringAndSize ((const char * )digest , digest_length );
874876}
@@ -883,30 +885,9 @@ static PyObject *
883885_blake2_blake2b_hexdigest_impl (Blake2Object * self )
884886/*[clinic end generated code: output=5ef54b138db6610a input=76930f6946351f56]*/
885887{
886- uint8_t digest [HACL_HASH_BLAKE2B_OUT_BYTES ];
887-
888+ uint8_t digest_length = 0 , digest [HACL_HASH_BLAKE2B_OUT_BYTES ];
888889 ENTER_HASHLIB (self );
889- uint8_t digest_length = 0 ;
890- switch (self -> impl ) {
891- #if HACL_CAN_COMPILE_SIMD256
892- case Blake2b_256 :
893- digest_length = Hacl_Hash_Blake2b_Simd256_digest (self -> blake2b_256_state , digest );
894- break ;
895- #endif
896- #if HACL_CAN_COMPILE_SIMD128
897- case Blake2s_128 :
898- digest_length = Hacl_Hash_Blake2s_Simd128_digest (self -> blake2s_128_state , digest );
899- break ;
900- #endif
901- case Blake2b :
902- digest_length = Hacl_Hash_Blake2b_digest (self -> blake2b_state , digest );
903- break ;
904- case Blake2s :
905- digest_length = Hacl_Hash_Blake2s_digest (self -> blake2s_state , digest );
906- break ;
907- default :
908- Py_UNREACHABLE ();
909- }
890+ digest_length = blake2_blake2b_compute_digest (self , digest );
910891 LEAVE_HASHLIB (self );
911892 return _Py_strhex ((const char * )digest , digest_length );
912893}
0 commit comments