1import os
2import sys
3import glob
4
5from setuptools import setup, find_packages
6from distutils.core import Extension
7from distutils.util import get_platform
8
9here = os.path.abspath(os.path.dirname(__file__))
10README = open(os.path.join(here, 'README.txt')).read()
11CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
12
13setup(name='ed25519ll',
14      version='0.6',
15      description='A low-level ctypes wrapper for Ed25519 digital signatures.',
16      long_description=README + '\n\n' + CHANGES,
17      classifiers=[
18        "Development Status :: 4 - Beta",
19        "Intended Audience :: Developers",
20        "Programming Language :: Python",
21        "Topic :: Security :: Cryptography",
22        "Programming Language :: Python",
23        "Programming Language :: Python :: 2",
24        "Programming Language :: Python :: 2.6",
25        "Programming Language :: Python :: 2.7",
26        "Programming Language :: Python :: 3",
27        "Programming Language :: Python :: 3.2",
28        "Programming Language :: Python :: 3.3",
29        ],
30      author='Daniel Holth',
31      author_email='dholth@fastmail.fm',
32      url='http://bitbucket.org/dholth/ed25519ll/',
33      keywords='ed25519',
34      license='MIT',
35      packages=['ed25519ll'],
36      include_package_data=True,
37      zip_safe=False,
38      tests_require=['nose'],
39      test_suite='nose.collector',
40      ext_modules=[
41               Extension('ed25519ll._ed25519',
42                         sources=[
43                             'ed25519-supercop-ref10/ge_frombytes.c',
44                             'ed25519-supercop-ref10/fe_frombytes.c',
45                             'ed25519-supercop-ref10/ge_tobytes.c',
46                             'ed25519-supercop-ref10/fe_sq.c',
47                             'ed25519-supercop-ref10/ge_scalarmult_base.c',
48                             'ed25519-supercop-ref10/sc_reduce.c',
49                             'ed25519-supercop-ref10/ge_p2_0.c',
50                             'ed25519-supercop-ref10/ge_sub.c',
51                             'ed25519-supercop-ref10/fe_sub.c',
52                             'ed25519-supercop-ref10/ge_p2_dbl.c',
53                             'ed25519-supercop-ref10/ge_double_scalarmult.c',
54                             'ed25519-supercop-ref10/fe_0.c',
55                             'ed25519-supercop-ref10/ge_p3_to_p2.c',
56                             'ed25519-supercop-ref10/ge_precomp_0.c',
57                             'ed25519-supercop-ref10/fe_cmov.c',
58                             'ed25519-supercop-ref10/sc_muladd.c',
59                             'ed25519-supercop-ref10/fe_isnegative.c',
60                             'ed25519-supercop-ref10/ge_p3_dbl.c',
61                             'ed25519-supercop-ref10/ge_add.c',
62                             'ed25519-supercop-ref10/fe_neg.c',
63                             'ed25519-supercop-ref10/ge_p3_0.c',
64                             'ed25519-supercop-ref10/fe_1.c',
65                             'ed25519-supercop-ref10/ge_madd.c',
66                             'ed25519-supercop-ref10/fe_tobytes.c',
67                             'ed25519-supercop-ref10/sign.c',
68                             'ed25519-supercop-ref10/fe_copy.c',
69                             'ed25519-supercop-ref10/ge_p1p1_to_p2.c',
70                             'ed25519-supercop-ref10/fe_isnonzero.c',
71                             'ed25519-supercop-ref10/open.c',
72                             'ed25519-supercop-ref10/fe_sq2.c',
73                             'ed25519-supercop-ref10/ge_msub.c',
74                             'ed25519-supercop-ref10/fe_add.c',
75                             'ed25519-supercop-ref10/fe_mul.c',
76                             'ed25519-supercop-ref10/fe_pow22523.c',
77                             'ed25519-supercop-ref10/fe_invert.c',
78                             'ed25519-supercop-ref10/ge_p3_tobytes.c',
79                             'ed25519-supercop-ref10/ge_p1p1_to_p3.c',
80                             'ed25519-supercop-ref10/ge_p3_to_cached.c',
81                             'ed25519-supercop-ref10/sha512-blocks.c',
82                             'ed25519-supercop-ref10/sha512-hash.c',
83                             'ed25519-supercop-ref10/verify.c',
84                             'ed25519-supercop-ref10/keypair.c',
85                             'ed25519-supercop-ref10/py.c'],
86                         include_dirs=['ed25519-supercop-ref10', ],
87                         export_symbols=["crypto_sign",
88                                         "crypto_sign_open",
89                                         "crypto_sign_keypair"],
90                         compile_extra=['-march=native']),
91               ],
92      )
93
94