[Nym3-commit] r239 - trunk/nym3
laurent at conuropsis.org
laurent at conuropsis.org
Thu May 5 20:36:00 CEST 2005
Author: laurent
Date: 2005-05-05 20:35:58 +0200 (Thu, 05 May 2005)
New Revision: 239
Modified:
trunk/nym3/Crypto.py
Log:
Fix various bugs in nym_encrypt.
Modified: trunk/nym3/Crypto.py
===================================================================
--- trunk/nym3/Crypto.py 2005-05-05 17:09:51 UTC (rev 238)
+++ trunk/nym3/Crypto.py 2005-05-05 18:35:58 UTC (rev 239)
@@ -30,22 +30,21 @@
import Message
def nym_encrypt(data, key):
- """Encrypts data with the given key using nymservers fashion
- """
+ """Encrypts data with the given key, following specs §4.2.
+ Key is the ASN.1 encoding of the actual public key"""
+ key = _cr.pk_decode_public_key(key)
n = Message.nbBits(_cr.pk_get_modulus(key)) / 8
assert n == 128 or n == 256
dataC = compressData(data)
- paddingLen = len(dataC) - (len(dataC) / 128) * 128
- if paddingLen != 0:
- paddingLen = 128 - paddingLen
- dataP = dataC + '0'*paddingLen
+ paddingLen = 128 - (len(dataC) % 128)
+ dataP = dataC + chr(0) * paddingLen
k = ""
for i in range(0, 20):
- k = k + chr(random.randint(0, 255))
+ k = k + chr(random.randint(0, 255)) # TODO : better random.
K = _cr.Keyset(k)
dataE = _cr.lioness_encrypt(dataP, K.getLionessKeys(""))
#42 : size of OAEP padding(bytes)
#20 : size of k (bytes)
rsaLen = n - OAEP_OVERHEAD - 20
- rsaPart = pk_encrypt(k + dataE[0:rsaLen],key)
- return rsaPart + dataEnc[rsaLen:]
+ rsaPart = _cr.pk_encrypt(k + dataE[:rsaLen], key)
+ return rsaPart + dataE[rsaLen:]
More information about the Nym3-commit
mailing list