ed25519ll is a low-level wrapper for the Ed25519 public key signature

system. It uses Extension() to compile a shared library that is not a
Python extension module, and then uses ctypes to talk to the library. With
luck it will only be necessary to compile ed25519ll once for each
platform, reusing its shared library across Python versions.

This wrapper also contains a reasonably performat pure-Python
fallback. Unlike the reference implementation, the Python implementation
does not contain protection against timing attacks.

WWW: http://bitbucket.org/dholth/ed25519ll/

Build logs:	http://goo.gl/zv5y7K
This commit is contained in:
Nicola Vitale 2013-07-26 12:44:03 +00:00
parent a28363fb24
commit efa1f30c1b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=323717
7 changed files with 97 additions and 0 deletions

View file

@ -750,6 +750,7 @@
SUBDIR += py-cracklib
SUBDIR += py-cryptkit
SUBDIR += py-ecdsa
SUBDIR += py-ed25519ll
SUBDIR += py-fail2ban
SUBDIR += py-gnupg
SUBDIR += py-gnutls

View file

@ -0,0 +1,21 @@
# Created by: Nicola Vitale <nivit@FreeBSD.org>
# $FreeBSD$
PORTNAME= ed25519ll
PORTVERSION= 0.6
#PORTREVISION= 0
CATEGORIES= security
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= nivit@FreeBSD.org
COMMENT= Low-level ctypes wrapper for Ed25519 digital signatures
LICENSE= MIT
PYEASYINSTALL_ARCHDEP= yes
USE_PYTHON= yes
USE_PYDISTUTILS= easy_install
.include <bsd.port.mk>

View file

@ -0,0 +1,2 @@
SHA256 (ed25519ll-0.6.tar.gz) = 7b75b7e6f4c7e7c172229aa78b13436ca9834ef5893598b49c7163d7ba55adf9
SIZE (ed25519ll-0.6.tar.gz) = 74782

View file

@ -0,0 +1,13 @@
--- ./ed25519ll/ed25519ct.py.orig 2013-07-26 11:26:29.000000000 +0200
+++ ./ed25519ll/ed25519ct.py 2013-07-26 11:26:43.000000000 +0200
@@ -15,9 +15,8 @@
__all__ = ['crypto_sign', 'crypto_sign_open', 'crypto_sign_keypair', 'Keypair',
'PUBLICKEYBYTES', 'SECRETKEYBYTES', 'SIGNATUREBYTES']
-plat_name = get_platform().replace('-', '_')
so_suffix = sysconfig.get_config_var('SO')
-lib_filename = '_ed25519_%s%s' % (plat_name, so_suffix)
+lib_filename = '_ed25519%s' % (so_suffix)
try:
_ed25519 = ctypes.cdll.LoadLibrary(

View file

@ -0,0 +1,20 @@
--- ./setup.py.orig 2013-07-26 11:26:23.000000000 +0200
+++ ./setup.py 2013-07-26 11:27:07.000000000 +0200
@@ -10,8 +10,6 @@
README = open(os.path.join(here, 'README.txt')).read()
CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
-plat_name = get_platform().replace('-', '_')
-
setup(name='ed25519ll',
version='0.6',
description='A low-level ctypes wrapper for Ed25519 digital signatures.',
@@ -33,7 +31,7 @@
tests_require=['nose'],
test_suite='nose.collector',
ext_modules=[
- Extension('ed25519ll._ed25519_%s' % plat_name,
+ Extension('ed25519ll._ed25519',
sources=[
'ed25519-supercop-ref10/ge_frombytes.c',
'ed25519-supercop-ref10/fe_frombytes.c',

View file

@ -0,0 +1,11 @@
ed25519ll is a low-level wrapper for the Ed25519 public key signature
system. It uses Extension() to compile a shared library that is not a
Python extension module, and then uses ctypes to talk to the library. With
luck it will only be necessary to compile ed25519ll once for each
platform, reusing its shared library across Python versions.
This wrapper also contains a reasonably performat pure-Python
fallback. Unlike the reference implementation, the Python implementation
does not contain protection against timing attacks.
WWW: http://bitbucket.org/dholth/ed25519ll/

View file

@ -0,0 +1,29 @@
@comment $FreeBSD$
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/PKG-INFO
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/SOURCES.txt
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/dependency_links.txt
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/native_libs.txt
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/not-zip-safe
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO/top_level.txt
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/__init__.py
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/__init__.pyc
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/__init__.pyo
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/_ed25519.py
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/_ed25519.pyc
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/_ed25519.pyo
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/_ed25519.so
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/djbec.py
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/djbec.pyc
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/djbec.pyo
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/ed25519ct.py
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/ed25519ct.pyc
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/ed25519ct.pyo
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/ed25519py.py
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/ed25519py.pyc
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/ed25519py.pyo
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/test.py
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/test.pyc
%%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll/test.pyo
@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/ed25519ll
@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%/EGG-INFO
@dirrm %%PYTHON_SITELIBDIR%%/%%PYEASYINSTALL_EGG%%