Duda en [oaep_int:dbMask]

Duda en [oaep_int:dbMask]

de Octavio Perez Kempner -
Número de respuestas: 3

Buenas,

Al momento de utilizar la función rsaes_oaep_encrypt siguiendo el ejemplo propuesto no obtengo el valor de dbMask correcto.

He probado distintas maneras de generar los primeros hexadecimales de dbMask  (06e1deb2369aa5a5c707d82c8e4e93248ac783de) y no he llegado con ninguna..

Los valores los estoy generando con llamadas a la función mfg1('aafd12f659cae63489b479e5076ddec2f06cb58f',107)

Dejo algunas de las diferentes interpretaciones que logré desprender de las especificaciones de mgf1 (T = T|| Hash(mgfSeed||C) .

#1 - concatenar a prepo
print hashlib.sha1('aafd12f659cae63489b479e5076ddec2f06cb58f00000000').hexdigest()
#98df84534c94f94b1f5f2982e4011192cc63caef
#2 - sumo los enteros de los hexa y los paso a string
print hashlib.sha1(i2osp(os2ip('aafd12f659cae63489b479e5076ddec2f06cb58f')+0,len(str(os2ip('aafd12f659cae63489b479e5076ddec2f06cb58f')+0))//2)).hexdigest()
#7a4a84b0dd14ac2a5ed5a14d81d7ac25efcf15e5
#3 - calculo el string verdadero del hexa del seed y lo concateno con 0
print hashlib.sha1(str(os2ip('aafd12f659cae63489b479e5076ddec2f06cb58f'))+ '00000000').hexdigest()
#17e79a8f27348acace39c05d8d2ade0a649802ca
#4 - pasar los dos a hexa y despues pasar el hexa a numero
print hashlib.sha1(str(os2ip('aafd12f659cae63489b479e5076ddec2f06cb58f')+ os2ip('00000000'))).hexdigest()
#584b3d0d0f23819894e87baea96ca0c1c02a55f7
#5 - otra variante
print hashlib.sha1('aafd12f659cae63489b479e5076ddec2f06cb58f'+ str(os2ip('00000000'))).hexdigest()
#2005facdb6cf0b9fb85c07c72975cec48304a131

Me gustaría saber entonces, que parte de las especificaciones no estoy entendiendo.

 

Saludos,

Octavio

En respuesta a Octavio Perez Kempner

Re: Duda en [oaep_int:dbMask]

de Octavio Perez Kempner -
En respuesta a Octavio Perez Kempner

Re: Duda en [oaep_int:dbMask]

de Javier Agustin Farias Gonzalez -

Arrancás con T="", y vas concatenándole Hash(mgfSeed||C), no?