fix decryption test case
authorNIIBE Yutaka <gniibe@fsij.org>
Mon, 9 Jul 2012 00:26:10 +0000 (09:26 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Mon, 9 Jul 2012 00:26:10 +0000 (09:26 +0900)
ChangeLog
test/rsa_keys.py

index 471a751..3c8efd1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-09  Niibe Yutaka  <gniibe@fsij.org>
+
+       * test/rsa_keys.py (integer_to_bytes_256): Rename from
+       integer_to_bytes and it should be exactly 256-byte long.
+
 2012-07-06  Niibe Yutaka  <gniibe@fsij.org>
 
        * Version 0.21.
index fe210b2..02b057d 100644 (file)
@@ -125,24 +125,24 @@ def compute_signature(keyno, digestinfo):
     sig = t2 + t * q
     return sig
 
-def integer_to_bytes(i):
+def integer_to_bytes_256(i):
     s = hex(i)[2:]
     s = s.rstrip('L')
     if len(s) & 1:
         s = '0' + s
-    return unhexlify(s)
+    return string.rjust(unhexlify(s), 256, '\x00')
 
 def encrypt(keyno, plaintext):
     e = key[keyno][4]
     n = key[keyno][7]
     m = pkcs1_pad_for_crypt(plaintext)
-    return '\x00' + integer_to_bytes(pow(m, e, n))
+    return '\x00' + integer_to_bytes_256(pow(m, e, n))
 
 def encrypt_with_pubkey(pubkey_info, plaintext):
     n = int(hexlify(pubkey_info[0]), 16)
     e = int(hexlify(pubkey_info[1]), 16)
     m = pkcs1_pad_for_crypt(plaintext)
-    return '\x00' + integer_to_bytes(pow(m, e, n))
+    return '\x00' + integer_to_bytes_256(pow(m, e, n))
 
 def verify_signature(pubkey_info, digestinfo, sig):
     n = int(hexlify(pubkey_info[0]), 16)