remove scons dependency, build shared library with Makefile

pull/25/head
Pavol Rusnak 9 years ago
parent cbbc0bdc71
commit 418e86c293

2
.gitignore vendored

@ -8,8 +8,6 @@ build/
dist/
MANIFEST
TrezorCrypto.c
SConstruct
.sconsign.dblite
*.os
*.so
*.pyc

@ -30,15 +30,17 @@ ifdef SMALL
CFLAGS += -DUSE_PRECOMPUTED_IV=0 -DUSE_PRECOMPUTED_CP=0
endif
OBJS = bignum.o ecdsa.o secp256k1.o nist256p1.o rand.o hmac.o bip32.o bip39.o pbkdf2.o base58.o
OBJS += ripemd160.o
OBJS += sha2.o
OBJS += aescrypt.o aeskey.o aestab.o aes_modes.o
SRCS = bignum.c ecdsa.c secp256k1.c nist256p1.c rand.c hmac.c bip32.c bip39.c pbkdf2.c base58.c
SRCS += ripemd160.c
SRCS += sha2.c
SRCS += aescrypt.c aeskey.c aestab.c aes_modes.c
OBJS = $(SRCS:.c=.o)
TESTLIBS = -lcheck -lrt -lpthread -lm
TESTSSLLIBS = -lcrypto
all: tests test-openssl
all: tests test-openssl libtrezor-crypto.so
%.o: %.c %.h options.h
$(CC) $(CFLAGS) -o $@ -c $<
@ -49,5 +51,8 @@ tests: tests.o $(OBJS)
test-openssl: test-openssl.o $(OBJS)
$(CC) test-openssl.o $(OBJS) $(TESTSSLLIBS) -o test-openssl
libtrezor-crypto.so: $(SRCS)
$(CC) $(CFLAGS) -fPIC -shared $(SRCS) -o libtrezor-crypto.so
clean:
rm -f *.o tests test-openssl
rm -f *.o tests test-openssl libtrezor-crypto.so

@ -3,10 +3,9 @@ import ctypes as c
import random
import ecdsa
import hashlib
import subprocess
import binascii
import pytest
import os
import pytest
def bytes2num(s):
res = 0
@ -22,20 +21,7 @@ curves = {
random_iters = int(os.environ.get('ITERS', 1))
scons_file = '''
srcs = 'ecdsa bignum secp256k1 nist256p1 sha2 rand hmac ripemd160 base58'
srcs = [(s + '.c') for s in srcs.split()]
flags = ('-O3 -g -W -Wall -Wextra -Wimplicit-function-declaration '
'-Wredundant-decls -Wstrict-prototypes -Wundef -Wshadow '
'-Wpointer-arith -Wformat -Wreturn-type -Wsign-compare -Wmultichar '
'-Wformat-nonliteral -Winit-self -Wuninitialized -Wformat-security '
'-Werror -Wno-sequence-point ')
SharedLibrary('ecdsa', srcs, CCFLAGS=flags)
'''
open('SConstruct', 'w').write(scons_file)
subprocess.check_call('scons -s', shell=True)
lib = c.cdll.LoadLibrary('./libecdsa.so')
lib = c.cdll.LoadLibrary('./libtrezor-crypto.so')
lib.get_curve_by_name.restype = c.c_void_p

Loading…
Cancel
Save