Skip to content

Commit 1b064a0

Browse files
committed
Latest Ultrix
1 parent ef42532 commit 1b064a0

File tree

4 files changed

+30
-5
lines changed

4 files changed

+30
-5
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
future>=0.14.3
22
pytest>=2.5.0
33
msgpack-python>=0.4.6
4-
petlib>=0.0.38
4+
petlib>=0.0.41
55
pynacl>=1.1.0

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
"future >= 0.14.3",
2424
"pytest >= 3.0.0",
2525
"msgpack-python >= 0.4.6",
26-
"petlib >= 0.0.38",
26+
"petlib >= 0.0.41",
2727
"pynacl >= 1.1.0",
2828
],
2929
install_requires=[
3030
"future >= 0.14.3",
3131
"pytest >= 3.0.0",
3232
"msgpack-python >= 0.4.6",
33-
"petlib >= 0.0.38",
33+
"petlib >= 0.0.41",
3434
"pynacl >= 1.1.0",
3535
]
3636
)

sphinxmix/SphinxParams.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ def test_params():
9494
c = params.aes_ctr(k, b"Hello World!")
9595
assert params.aes_ctr(k, c) == b"Hello World!"
9696

97+
c = params.small_perm(b"\x00"*16, b"\x00"*16)
98+
c2 = params.small_perm_inv(b"\x00"*16, c)
99+
assert c2 == b"\x00"*16
100+
97101
class SphinxParams:
98102

99103
def __init__(self, group=None, header_len = 192, body_len = 1024, assoc_len=0, k=16):
@@ -193,6 +197,22 @@ def pii(self, key, data):
193197

194198
return self.lioness_dec(key, data)
195199

200+
def small_perm(self, key, data):
201+
assert len(data) == self.k
202+
aes = Cipher("AES-128-ECB")
203+
enc = aes.enc(key, None)
204+
c = enc.update(data)
205+
c += enc.finalize()
206+
return c
207+
208+
def small_perm_inv(self, key, data):
209+
assert len(data) == self.k
210+
aes = Cipher("AES-128-ECB")
211+
enc = aes.dec(key, None)
212+
c = enc.update(data)
213+
c += enc.finalize()
214+
return c
215+
196216
# The various hashes
197217
def hash(self, data):
198218
return sha256(data).digest()

sphinxmix/UltrixClient.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from .SphinxClient import pack_message, unpack_message
4040

4141

42-
def create_header(params, nodelist, keys, dest, assoc=None, secrets = None, gamma=None):
42+
def create_header(params, nodelist, keys, dest, assoc=None, secrets = None, gamma=None, dest_key = None):
4343
""" Internal function, creating a Sphinx header."""
4444

4545
node_meta = [pack("b", len(n)) + n for n in nodelist]
@@ -68,6 +68,9 @@ def create_header(params, nodelist, keys, dest, assoc=None, secrets = None, gamm
6868
if not gamma:
6969
gamma = urandom(16)
7070

71+
if not dest_key:
72+
dest_key = urandom(p.k)
73+
7174
asbtuples = []
7275

7376
for k in keys:
@@ -119,13 +122,15 @@ def create_header(params, nodelist, keys, dest, assoc=None, secrets = None, gamm
119122
beta_all = [ beta ] + beta_all
120123

121124
# Compute the cummulative MAC.
122-
123125
original_gamma = gamma
124126
new_keys = []
125127
for beta_i, k in zip(beta_all, asbtuples):
126128
gamma = p.mu(p.hmu(k.aes), gamma + beta_i)
127129
new_keys += [p.derive_key(k.aes, gamma)]
128130

131+
# Encrypt the dest key
132+
133+
129134
return (asbtuples[0].alpha, beta, original_gamma), new_keys
130135

131136

0 commit comments

Comments
 (0)