ports/180015: [NEW PORT] Add security/libsparkcrypto port

John Marino draco at marino.st
Wed Jun 26 23:40:00 UTC 2013


>Number:         180015
>Category:       ports
>Synopsis:       [NEW PORT] Add security/libsparkcrypto port
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 26 23:40:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     John Marino
>Release:        
>Organization:
>Environment:
>Description:
libsparkcrypto is a formally verified implementation of several widely used symmetric cryptographic algorithms using the SPARK programming language and toolset. For the complete library proofs of the absence of run-time errors like type range violations, division by zero and numerical overflows are available. Some of its subprograms include proofs of partial correctness.

The distribution contains test cases for all implemented algorithms and a benchmark to compare its performance with the OpenSSL library. The achieved speed has been found to be very close to the optimized C and Assembler implementations of OpenSSL.

This port passes redports 8.4-amd64, 8.4-i386, 9.1-amd64 and 9.1-i386
It also passes pkg DEVELOPER_MODE=1.

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	libsparkcrypto
#	libsparkcrypto/pkg-plist
#	libsparkcrypto/Makefile
#	libsparkcrypto/distinfo
#	libsparkcrypto/pkg-descr
#	libsparkcrypto/files
#	libsparkcrypto/files/patch-Makefile
#	libsparkcrypto/files/patch-build_libsparkcrypto.gpr
#
echo c - libsparkcrypto
mkdir -p libsparkcrypto > /dev/null 2>&1
echo x - libsparkcrypto/pkg-plist
sed 's/^X//' >libsparkcrypto/pkg-plist << 'END-of-libsparkcrypto/pkg-plist'
Xinclude/libsparkcrypto/adainclude/lsc-aes-print.adb
Xinclude/libsparkcrypto/adainclude/lsc-aes-print.ads
Xinclude/libsparkcrypto/adainclude/lsc-byteswap32.adb
Xinclude/libsparkcrypto/adainclude/lsc-byteswap64.adb
Xinclude/libsparkcrypto/adainclude/lsc-debug.ads
Xinclude/libsparkcrypto/adainclude/lsc-io.adb
Xinclude/libsparkcrypto/adainclude/lsc-ripemd160-print.adb
Xinclude/libsparkcrypto/adainclude/lsc-ripemd160-print.ads
Xinclude/libsparkcrypto/adainclude/lsc-test.adb
Xinclude/libsparkcrypto/adainclude/lsc-types.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-aes-cbc.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-aes-cbc.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-aes-print.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-aes-tables.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-aes.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-aes.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-byteorder32.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-byteorder32.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-byteorder64.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-byteorder64.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-byteswap32.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-byteswap32.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-byteswap64.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-byteswap64.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-debug.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_ripemd160.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_ripemd160.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_sha256.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_sha256.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_sha384.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_sha384.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_sha512.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-hmac_sha512.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-io.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-ops32.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-ops32.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-ops64.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-ops64.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-pad32.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-pad32.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-pad64.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-pad64.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-ripemd160-print.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-ripemd160.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-ripemd160.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-sha256-tables.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-sha256.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-sha256.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-sha512-tables.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-sha512.adb
Xinclude/libsparkcrypto/sharedinclude/lsc-sha512.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-test.ads
Xinclude/libsparkcrypto/sharedinclude/lsc-types.ads
Xinclude/libsparkcrypto/sharedinclude/lsc.ads
Xlib/gnat/libsparkcrypto.gpr
Xlib/libsparkcrypto/libsparkcrypto.a
Xlib/libsparkcrypto/lsc-aes-cbc.ali
Xlib/libsparkcrypto/lsc-aes-print.ali
Xlib/libsparkcrypto/lsc-aes-tables.ali
Xlib/libsparkcrypto/lsc-aes.ali
Xlib/libsparkcrypto/lsc-byteorder32.ali
Xlib/libsparkcrypto/lsc-byteorder64.ali
Xlib/libsparkcrypto/lsc-byteswap32.ali
Xlib/libsparkcrypto/lsc-byteswap64.ali
Xlib/libsparkcrypto/lsc-debug.ali
Xlib/libsparkcrypto/lsc-hmac_ripemd160.ali
Xlib/libsparkcrypto/lsc-hmac_sha256.ali
Xlib/libsparkcrypto/lsc-hmac_sha384.ali
Xlib/libsparkcrypto/lsc-hmac_sha512.ali
Xlib/libsparkcrypto/lsc-io.ali
Xlib/libsparkcrypto/lsc-ops32.ali
Xlib/libsparkcrypto/lsc-ops64.ali
Xlib/libsparkcrypto/lsc-pad32.ali
Xlib/libsparkcrypto/lsc-pad64.ali
Xlib/libsparkcrypto/lsc-ripemd160-print.ali
Xlib/libsparkcrypto/lsc-ripemd160.ali
Xlib/libsparkcrypto/lsc-sha256-tables.ali
Xlib/libsparkcrypto/lsc-sha256.ali
Xlib/libsparkcrypto/lsc-sha512-tables.ali
Xlib/libsparkcrypto/lsc-sha512.ali
Xlib/libsparkcrypto/lsc-test.ali
Xlib/libsparkcrypto/lsc-types.ali
Xlib/libsparkcrypto/lsc.ali
X at dirrm include/libsparkcrypto/sharedinclude
X at dirrm include/libsparkcrypto/adainclude
X at dirrm include/libsparkcrypto
X at dirrm lib/libsparkcrypto
X at dirrmtry lib/gnat
END-of-libsparkcrypto/pkg-plist
echo x - libsparkcrypto/Makefile
sed 's/^X//' >libsparkcrypto/Makefile << 'END-of-libsparkcrypto/Makefile'
X# Created by: John Marino <draco at marino.st>
X# $FreeBSD$
X
XPORTNAME=	libsparkcrypto
XPORTVERSION=	0.1.1
XCATEGORIES=	security
XMASTER_SITES=	http://senier.net/libsparkcrypto/
XEXTRACT_SUFX=	.tgz
X
XMAINTAINER=	draco at marino.st
XCOMMENT=	Cryptographic library implemented in SPARK
X
XLICENSE=	BSD
X
XUSES=		ada
XUSE_GMAKE=	yes
XUSE_DOS2UNIX=	Makefile build/libsparkcrypto.gpr
XSPARKARCH:=	${ARCH:S/amd64/x86_64/:S/i386/i686/}
X
X# The APIDOC requires AdaBrowse which in turn requires ASIS which is
X# coupled with the compiler.  There is a question whether Adacore's
X# GPL ASIS is even compatible with FSF GNAT, which is what gcc-aux is.
X# Until this question is answered, skip API document building.
X
XMAKE_ENV+=	SPARKARCH=${SPARKARCH} \
X		SPARK_DIR=${WRKSRC}/src/spark \
X		DESTDIR=${LOCALBASE} \
X		MODE=release \
X		RUNTIME=native \
X		NO_TESTS=true \
X		NO_PROOF=true \
X		NO_APIDOC=true
X
Xpost-patch:
X	# ports passed unwanted ARCH definition to Makefile
X	@${REINPLACE_CMD} -e 's|ARCH|SPARKARCH|g' \
X		${WRKSRC}/Makefile
X
X.include <bsd.port.mk>
END-of-libsparkcrypto/Makefile
echo x - libsparkcrypto/distinfo
sed 's/^X//' >libsparkcrypto/distinfo << 'END-of-libsparkcrypto/distinfo'
XSHA256 (libsparkcrypto-0.1.1.tgz) = 47582d6910b8c5bb46df51d0e76c27e6fa2b13e8ab73fb4ae0f1d9f7cbd7aa6a
XSIZE (libsparkcrypto-0.1.1.tgz) = 101491
END-of-libsparkcrypto/distinfo
echo x - libsparkcrypto/pkg-descr
sed 's/^X//' >libsparkcrypto/pkg-descr << 'END-of-libsparkcrypto/pkg-descr'
Xlibsparkcrypto is a formally verified implementation of several widely used
Xsymmetric cryptographic algorithms using the SPARK programming language and
Xtoolset. For the complete library proofs of the absence of run-time errors
Xlike type range violations, division by zero and numerical overflows are
Xavailable. Some of its subprograms include proofs of partial correctness.
X
XThe distribution contains test cases for all implemented algorithms and a
Xbenchmark to compare its performance with the OpenSSL library. The achieved
Xspeed has been found to be very close to the optimized C and Assembler
Ximplementations of OpenSSL.
X
XWWW: http://senier.net/libsparkcrypto/
END-of-libsparkcrypto/pkg-descr
echo c - libsparkcrypto/files
mkdir -p libsparkcrypto/files > /dev/null 2>&1
echo x - libsparkcrypto/files/patch-Makefile
sed 's/^X//' >libsparkcrypto/files/patch-Makefile << 'END-of-libsparkcrypto/files/patch-Makefile'
X--- Makefile.orig	2013-06-26 21:03:13.000000000 +0000
X+++ Makefile
X@@ -154,21 +154,22 @@ $(OUTPUT_DIR)/proof/libsparkcrypto.idx:
X install: $(INSTALL_DEPS)
X 
X install_files: build
X-	install -d -m 755 $(DESTDIR)/adalib $(DESTDIR)/adainclude $(DESTDIR)/sharedinclude
X-	install -p -m 755 $(OUTPUT_DIR)/build/adalib/libsparkcrypto.a $(DESTDIR)/adalib/libsparkcrypto.a
X-	install -p -m 644 build/libsparkcrypto.gpr $(DESTDIR)/libsparkcrypto.gpr
X-	install -p -m 644 src/shared/$(ENDIANESS)/*.ad? $(DESTDIR)/sharedinclude/
X-	install -p -m 644 src/shared/generic/*.ad? $(DESTDIR)/sharedinclude/
X-	install -p -m 644 src/ada/generic/*.ad? $(DESTDIR)/adainclude/
X-	install -p -m 644 src/ada/$(IO)/*.ad? $(DESTDIR)/adainclude/
X+	install -d -m 755 $(DESTDIR)/lib/libsparkcrypto $(DESTDIR)/include/libsparkcrypto/adainclude
X+	install -d -m 755 $(DESTDIR)/lib/gnat $(DESTDIR)/include/libsparkcrypto/sharedinclude
X+	install -p -m 755 $(OUTPUT_DIR)/build/adalib/libsparkcrypto.a $(DESTDIR)/lib/libsparkcrypto/libsparkcrypto.a
X+	install -p -m 644 build/libsparkcrypto.gpr $(DESTDIR)/lib/gnat/libsparkcrypto.gpr
X+	install -p -m 644 src/shared/$(ENDIANESS)/*.ad? $(DESTDIR)/include/libsparkcrypto/sharedinclude/
X+	install -p -m 644 src/shared/generic/*.ad? $(DESTDIR)/include/libsparkcrypto/sharedinclude/
X+	install -p -m 644 src/ada/generic/*.ad? $(DESTDIR)/include/libsparkcrypto/adainclude/
X+	install -p -m 644 src/ada/$(IO)/*.ad? $(DESTDIR)/include/libsparkcrypto/adainclude/
X ifneq ($(strip $(ARCH_FILES)),)
X-	install -p -m 644 $(ARCH_FILES) $(DESTDIR)/adainclude/
X+	install -p -m 644 $(ARCH_FILES) $(DESTDIR)/include/libsparkcrypto/adainclude/
X endif
X-	install -p -m 444 $(OUTPUT_DIR)/build/adalib/*.ali $(DESTDIR)/adalib/
X+	install -p -m 444 $(OUTPUT_DIR)/build/adalib/*.ali $(DESTDIR)/lib/libsparkcrypto/
X 
X install_proof: install_files proof
X-	install -D -p -m 444 $(OUTPUT_DIR)/proof/libsparkcrypto.sum $(DESTDIR)/libsparkcrypto.sum
X-	(cd $(OUTPUT_DIR)/empty && sparkmake -include=*\.ads -dir=$(DESTDIR)/sharedinclude -nometa -index=$(DESTDIR)/libsparkcrypto.idx)
X+	install -D -p -m 444 $(OUTPUT_DIR)/proof/libsparkcrypto.sum $(DESTDIR)/include/libsparkcrypto/libsparkcrypto.sum
X+	(cd $(OUTPUT_DIR)/empty && sparkmake -include=*\.ads -dir=$(DESTDIR)/include/libsparkcrypto/sharedinclude -nometa -index=$(DESTDIR)/include/libsparkcrypto/libsparkcrypto.idx)
X 
X install_local: DESTDIR = $(OUTPUT_DIR)/libsparkcrypto
X install_local: install
END-of-libsparkcrypto/files/patch-Makefile
echo x - libsparkcrypto/files/patch-build_libsparkcrypto.gpr
sed 's/^X//' >libsparkcrypto/files/patch-build_libsparkcrypto.gpr << 'END-of-libsparkcrypto/files/patch-build_libsparkcrypto.gpr'
X--- build/libsparkcrypto.gpr.orig	2013-06-26 21:14:37.000000000 +0000
X+++ build/libsparkcrypto.gpr
X@@ -1,7 +1,8 @@
X project Libsparkcrypto
X is
X-   for Source_Dirs  use ("adainclude", "sharedinclude");
X-   for Library_Dir  use "adalib";
X+   for Source_Dirs  use ("../../include/libsparkcryto/adainclude",
X+      "../../include/libsparkcrypto/sharedinclude");
X+   for Library_Dir  use "../libsparkcrypto";
X    for Library_Kind use "static";
X    for Library_Name use "sparkcrypto";
X    for Externally_Built use "true";
END-of-libsparkcrypto/files/patch-build_libsparkcrypto.gpr
exit



>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list