def __init__(self, network, bargain_uri = ''):
     '''
     Constructor
     '''
     self.bargain_uri    = bargain_uri
     magicbytes          = MAGIC_BYTES_TESTNET if network == TESTNET else MAGIC_BYTES_MAINNET
     
     self._privkey1    = sha256('This is a private key')
     self._pubkey1     = privtopub(self._privkey1)  
     self.addr1        = pubtoaddr(self._pubkey1, magicbytes)  # mryyjA6YpPCJ24MsSN7YnCK6M3NZoUAwxb
     self._script1     = address_to_script(self.addr1) 
     
     self._privkeysign = sha256('This is a private key used to sign messages sent by the buyer')
     self._pubkeysign  = privtopub(self._privkeysign)  
Пример #2
0
def getPrivKey(n):
    seed = "MultiSig를 시험하기 위해 만든 seed"
    key = []
    for i in range(n):
        privKey = btc.sha256(seed)
        key.append(privKey)
        seed = privKey
    return key
 def _sign_ecdsa_sha256(self, msg, privkey):
     '''
     Signs a msg with SHA256 + ECDSA
     
     Parameters:
         msg     = message to be signed
         privkey = private key            
     '''
     if privkey is None: raise SignatureError()
     try: return ecdsa_sign(sha256(msg), privkey)
     except: raise SignatureError()
 def _check_sign_ecdsa_sha256(self, msg, sig, pubkey):
     '''
     Checks a SHA256 + ECDSA signature
     Returns True is signature is valid, False otherwise
     
     Parameters:
         msg    = signed message
         sig    = signature
         pubkey = ecdsa public key           
     '''
     if (not sig) or (not pubkey): return False
     try: return ecdsa_verify(sha256(msg), sig, pubkey)
     except: return False
Пример #5
0
def shared_secret_sender(scan_pubkey, ephem_privkey):
    shared_point = main.multiply(scan_pubkey, ephem_privkey)
    shared_secret = main.sha256(
        main.encode_pubkey(shared_point, 'bin_compressed'))
    return shared_secret
Пример #6
0
def shared_secret_sender(scan_pubkey, ephem_privkey):
    shared_point = main.multiply(scan_pubkey, ephem_privkey)
    shared_secret = main.sha256(main.encode_pubkey(shared_point,
                                                   'bin_compressed'))
    return shared_secret
Пример #7
0
# 파이썬 실습 파일: BrainWallet.py
# pybitcointools (https://github.com/vbuterin/pybitcointools)
# pybitcointools를 설치하지 않고 배포용 실습 코드의 bitcoin 폴더가 있는 곳에서 실행한다.
import bitcoin.main as btc

# 특정 문자열로 256-bit 개인키를 생성한다 (long brain wallet passphrase).
passphrase = 'Brain Wallet 시험용 개인키입니다. 잊어버리지 마세요.'
privKey = btc.sha256(passphrase)
dPrivKey = btc.decode_privkey(privKey, 'hex')  # 16진수 문자열을 10진수 숫자로 변환한다
if dPrivKey < btc.N:  # secp256k1 의 N 보다 작으면 OK
    # 개인키로 공개키를 생성한다.
    pubKey = btc.privkey_to_pubkey(privKey)

    # 공개키로 지갑 주소를 생성한다. (mainnet 용)
    address = btc.pubkey_to_address(pubKey, 0)

    # 결과 확인
    print("\n\nPassphrase :", passphrase)
    print("\n개인키 :", privKey)
    print("개인키 --> 공개키 :", pubKey)
    print("\n공개키 --> 지갑주소 :", address)
else:
    print("요청하신 Passphrase로 개인키를 만들었으나, 유효하지 않습니다.")
    print("다른 Passphrase로 다시 시도해 주세요.")
Пример #8
0
# 파이썬 실습 파일: 3-8.DeterministicWallet.py
# pybitcointools (https://github.com/vbuterin/pybitcointools)
# pybitcointools를 설치하지 않고 배포용 실습 코드의 bitcoin 폴더가 있는 곳에서 실행한다.
import bitcoin.main as btc

# 초기 Seed 값을 정의한다.
seed = '초기 seed 값입니다.'

# n 개의 개인키를 만든다
n = 5
error = 0
for i in range(1, (n + 1)):
    seed += str(i)
    privKey = btc.sha256(seed)
    dPrivKey = btc.decode_privkey(privKey, 'hex')  # 16진수 문자열을 10진수 숫자로 변환한다
    if dPrivKey < btc.N:  # secp256k1 의 N 보다 작으면 OK
        print("Key (%d) : %s" % (i, privKey))
    else:
        error += 1

if error > 0:
    print("요청하신 seed로 개인키 %d개를 모두 만들지 못했습니다." % n)
Пример #9
0
	def __init__(self, password, iv = None):
		self.key = bytearray(sha256(password))
		self.iv = list(bytearray(os.urandom(32))) if iv is None else iv
Пример #10
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Version: 0.0.1
Python library for the bargaining protocol
'''
import json
from bitcoin import address_to_script
from bitcoin.main import sha256, privtopub, pubtoaddr
from pybargain_protocol.constants import MAGIC_BYTES_TESTNET

'''
TEST VALUES
'''
TEST_PRIV1          = sha256('This is a private key')       
TEST_PUB1           = privtopub(TEST_PRIV1)                 
TEST_ADDR1          = pubtoaddr(TEST_PUB1, MAGIC_BYTES_TESTNET) # mryyjA6YpPCJ24MsSN7YnCK6M3NZoUAwxb

TEST_PRIV2          = sha256('This is another private key')
TEST_PUB2           = privtopub(TEST_PRIV2)
TEST_ADDR2          = pubtoaddr(TEST_PUB2, MAGIC_BYTES_TESTNET) # mftfwza9ZBwQRF2VW3YLuBhe8AkR2c2vrL

VALID_TIME1         = 1400100000L
VALID_TIME2         = 1400200000L
VALID_TIME3         = 1400300000L
VALID_TIME4         = 1400400000L
VALID_TIME5         = 1400500000L
VALID_TIME6         = 1400600000L
VALID_EXPIRES1      = 1401100000L
VALID_EXPIRES2      = 1401200000L