Refactor using of crypto functions #1796
|
@ -25,10 +25,10 @@ def genAckPayload(streamNumber=1, stealthLevel=0):
|
|||
if stealthLevel == 2: # Generate privacy-enhanced payload
|
||||
# Generate a dummy privkey and derive the pubkey
|
||||
dummyPubKeyHex = highlevelcrypto.privToPub(
|
||||
hexlify(helper_random.randomBytes(32)))
|
||||
hexlify(highlevelcrypto.randomBytes(32)))
|
||||
# Generate a dummy message of random length
|
||||
# (the smallest possible standard-formatted message is 234 bytes)
|
||||
dummyMessage = helper_random.randomBytes(
|
||||
dummyMessage = highlevelcrypto.randomBytes(
|
||||
helper_random.randomrandrange(234, 801))
|
||||
# Encrypt the message using standard BM encryption (ECIES)
|
||||
ackdata = highlevelcrypto.encrypt(dummyMessage, dummyPubKeyHex)
|
||||
|
@ -36,12 +36,12 @@ def genAckPayload(streamNumber=1, stealthLevel=0):
|
|||
version = 1
|
||||
|
||||
elif stealthLevel == 1: # Basic privacy payload (random getpubkey)
|
||||
ackdata = helper_random.randomBytes(32)
|
||||
ackdata = highlevelcrypto.randomBytes(32)
|
||||
acktype = 0 # getpubkey
|
||||
version = 4
|
||||
|
||||
else: # Minimum viable payload (non stealth)
|
||||
ackdata = helper_random.randomBytes(32)
|
||||
ackdata = highlevelcrypto.randomBytes(32)
|
||||
acktype = 2 # message
|
||||
version = 1
|
||||
|
||||
|
|
|
@ -1,12 +1,7 @@
|
|||
"""Convenience functions for random operations. Not suitable for security / cryptography operations."""
|
||||
|
||||
import os
|
||||
import random
|
||||
|
||||
try:
|
||||
from pyelliptic.openssl import OpenSSL
|
||||
except ImportError:
|
||||
from .pyelliptic.openssl import OpenSSL
|
||||
|
||||
NoneType = type(None)
|
||||
|
||||
|
@ -16,14 +11,6 @@ def seed():
|
|||
random.seed()
|
||||
|
||||
|
||||
def randomBytes(n):
|
||||
"""Method randomBytes."""
|
||||
try:
|
||||
return os.urandom(n)
|
||||
except NotImplementedError:
|
||||
return OpenSSL.rand(n)
|
||||
|
||||
|
||||
def randomshuffle(population):
|
||||
"""Method randomShuffle.
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ High level cryptographic functions based on `.pyelliptic` OpenSSL bindings.
|
|||
"""
|
||||
|
||||
import hashlib
|
||||
import os
|
||||
from binascii import hexlify
|
||||
|
||||
import pyelliptic
|
||||
|
@ -59,6 +60,16 @@ def encodeWalletImportFormat(privKey):
|
|||
return a.changebase(privKey + checksum, 256, 58)
|
||||
|
||||
|
||||
# Random
|
||||
|
||||
def randomBytes(n):
|
||||
"""Get n random bytes"""
|
||||
try:
|
||||
return os.urandom(n)
|
||||
except NotImplementedError:
|
||||
return OpenSSL.rand(n)
|
||||
|
||||
|
||||
def makeCryptor(privkey):
|
||||
"""Return a private `.pyelliptic.ECC` instance"""
|
||||
private_key = a.changebase(privkey, 16, 256, minlen=32)
|
||||
|
|
|
@ -17,7 +17,7 @@ import knownnodes
|
|||
import protocol
|
||||
import state
|
||||
from bmconfigparser import BMConfigParser
|
||||
from helper_random import randomBytes
|
||||
from highlevelcrypto import randomBytes
|
||||
from inventory import Inventory
|
||||
from network.advanceddispatcher import AdvancedDispatcher
|
||||
from network.assemble import assemble_addr
|
||||
|
|
Reference in New Issue
Block a user