Skip to content
Snippets Groups Projects
Commit 33fdb51c authored by inso's avatar inso
Browse files

Using libnacl + pylibscrypt

parent 8340ae74
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,6 @@ Created on 12 déc. 2014
'''
import pytest
from ucoinpy.documents.block import Block
from mock import Mock
raw_block = """Version: 1
Type: Block
......
......@@ -6,7 +6,6 @@ Created on 6 déc. 2014
import pytest
from ucoinpy.documents.certification import SelfCertification, Certification
from mock import Mock
selfcert_inlines = ["HnFcSms8jzwngtVomTTnzudZx7SHUQY8sVE1y8yBmULk:\
h/H8tDIEbfA4yxMQcvfOXVDQhi1sUa9qYtPKrM59Bulv97ouwbAvAsEkC1Uyit1IOpeAV+CQQs4IaAyjE8F1Cw==:\
......
......@@ -5,7 +5,6 @@ Created on 12 déc. 2014
'''
import pytest
from ucoinpy.documents.membership import Membership
from mock import Mock
membership_inline = "HnFcSms8jzwngtVomTTnzudZx7SHUQY8sVE1y8yBmULk:\
dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu84rraDg==:\
......
......@@ -5,7 +5,6 @@ Created on 12 déc. 2014
'''
import pytest
from ucoinpy.documents.transaction import Transaction
from mock import Mock
tx_compact = """TX:1:1:3:1:0
......
......@@ -31,7 +31,6 @@ class Process(Tx):
def __post__(self, **kwargs):
assert 'transaction' in kwargs
assert 'signature' in kwargs
return self.requests_post('/process', **kwargs).json()
......
......@@ -6,8 +6,6 @@ Created on 3 déc. 2014
import base58
import re
from ..key import Base58Encoder
from nacl.encoding import Base64Encoder
class Document:
re_version = re.compile("Version: ([0-9]+)\n")
......@@ -26,7 +24,7 @@ class Document:
'''
self.signatures = []
for k in keys:
self.signatures.append(k.sign(self.raw(), Base64Encoder))
self.signatures.append(k.signature(self.raw()))
def signed_raw(self):
'''
......
......@@ -6,9 +6,8 @@ Ucoin public and private keys
import base58
import base64
import scrypt
from nacl.signing import SigningKey as NaclSigningKey
from nacl.encoding import Base64Encoder
from pylibscrypt import scrypt
from libnacl.sign import Signer as NaclSigningKey
SEED_LENGTH = 32 # Length of the key
......@@ -18,16 +17,22 @@ SCRYPT_PARAMS = {'N': 4096,
'p': 1
}
def _ensure_bytes(data):
if isinstance(data, str):
return bytes(data, 'utf-8')
return data
class SigningKey(NaclSigningKey):
def __init__(self, salt, password):
seed = scrypt.hash(password, salt,
salt = _ensure_bytes(salt)
password = _ensure_bytes(password)
seed = scrypt(password, salt,
SCRYPT_PARAMS['N'], SCRYPT_PARAMS['r'], SCRYPT_PARAMS['p'],
SEED_LENGTH)
super().__init__(seed)
self.pubkey = self.verify_key.encode(encoder=Base58Encoder)
self.pubkey = Base58Encoder.encode(self.vk)
class Base58Encoder(object):
@staticmethod
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment