aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>2021-12-29 15:37:14 +0500
committerAnna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>2021-12-29 16:38:06 +0500
commit5bfe94c0f25f07c1f0ca2e371aa8cbe34d8aafb3 (patch)
tree8f417b727c461a80642c7f96dd608a967967fca8 /dev-libs/rsaref
parentlicenses: add RSAREF (diff)
downloadguru-5bfe94c0f25f07c1f0ca2e371aa8cbe34d8aafb3.tar.gz
guru-5bfe94c0f25f07c1f0ca2e371aa8cbe34d8aafb3.tar.bz2
guru-5bfe94c0f25f07c1f0ca2e371aa8cbe34d8aafb3.zip
dev-libs/rsaref: initial import
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
Diffstat (limited to 'dev-libs/rsaref')
-rw-r--r--dev-libs/rsaref/Manifest1
-rw-r--r--dev-libs/rsaref/files/rsaref-2.0-global.patch47
-rw-r--r--dev-libs/rsaref/files/rsaref-2.0-includes.patch72
-rw-r--r--dev-libs/rsaref/files/rsaref-2.0-libtool.patch44
-rw-r--r--dev-libs/rsaref/files/rsaref-2.0-rsa.patch73
-rw-r--r--dev-libs/rsaref/metadata.xml30
-rw-r--r--dev-libs/rsaref/rsaref-2.0.ebuild44
7 files changed, 311 insertions, 0 deletions
diff --git a/dev-libs/rsaref/Manifest b/dev-libs/rsaref/Manifest
new file mode 100644
index 000000000..999cd5f16
--- /dev/null
+++ b/dev-libs/rsaref/Manifest
@@ -0,0 +1 @@
+DIST rsaref-2.0.tar.Z 144092 BLAKE2B 341dc102e01ffad31386e1a0f9a60bb20ced4cdf385faaff2fee3efbdc90721d2b1e17e045bb8ad2c1ac86d55ba28aafe2c94d9dbecf99dbef11724a6e5848e5 SHA512 70cf6fe7bbf91ab5b5e09af02e8a9b732d94f1126df720fcdf23fb6f5b4d46515573cb18241eb7354c9a40faadfcf30942044cd4a3a8507de6c783fadec03422
diff --git a/dev-libs/rsaref/files/rsaref-2.0-global.patch b/dev-libs/rsaref/files/rsaref-2.0-global.patch
new file mode 100644
index 000000000..30f35e9a3
--- /dev/null
+++ b/dev-libs/rsaref/files/rsaref-2.0-global.patch
@@ -0,0 +1,47 @@
+--- a/source/global.h
++++ b/source/global.h
+@@ -7,23 +7,17 @@
+ #ifndef _GLOBAL_H_
+ #define _GLOBAL_H_ 1
+
+-/* PROTOTYPES should be set to one if and only if the compiler supports
+- function argument prototyping.
+- The following makes PROTOTYPES default to 1 if it has not already been
+- defined as 0 with C compiler flags.
+- */
+-#ifndef PROTOTYPES
+-#define PROTOTYPES 1
+-#endif
++#include <sys/types.h>
++#include <sys/cdefs.h>
+
+ /* POINTER defines a generic pointer type */
+-typedef unsigned char *POINTER;
++typedef caddr_t POINTER;
+
+ /* UINT2 defines a two byte word */
+-typedef unsigned short int UINT2;
++typedef u_int16_t UINT2;
+
+ /* UINT4 defines a four byte word */
+-typedef unsigned long int UINT4;
++typedef u_int32_t UINT4;
+
+ #ifndef NULL_PTR
+ #define NULL_PTR ((POINTER)0)
+@@ -33,14 +27,6 @@
+ #define UNUSED_ARG(x) x = *(&x);
+ #endif
+
+-/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
+- If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
+- returns an empty list.
+- */
+-#if PROTOTYPES
+-#define PROTO_LIST(list) list
+-#else
+-#define PROTO_LIST(list) ()
+-#endif
++#define PROTO_LIST(x) __P(x)
+
+ #endif /* end _GLOBAL_H_ */
diff --git a/dev-libs/rsaref/files/rsaref-2.0-includes.patch b/dev-libs/rsaref/files/rsaref-2.0-includes.patch
new file mode 100644
index 000000000..1f6b6f008
--- /dev/null
+++ b/dev-libs/rsaref/files/rsaref-2.0-includes.patch
@@ -0,0 +1,72 @@
+--- a/source/des.h
++++ b/source/des.h
+@@ -4,6 +4,8 @@
+ #ifndef _DES_H_
+ #define _DES_H_ 1
+
++#include <rsaref/global.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+--- a/source/md2.h
++++ b/source/md2.h
+@@ -22,6 +22,8 @@
+ #ifndef _MD2_H_
+ #define _MD2_H_ 1
+
++#include <rsaref/global.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+--- a/source/r_random.c
++++ b/source/r_random.c
+@@ -8,7 +8,7 @@
+ #include "global.h"
+ #include "rsaref.h"
+ #include "r_random.h"
+-#include "md5.h"
++#include <rsaref/md5.h>
+
+ #define RANDOM_BYTES_NEEDED 256
+
+--- a/source/rsa.h
++++ b/source/rsa.h
+@@ -5,6 +5,11 @@
+ Inc., created 1991. All rights reserved.
+ */
+
++#ifndef _RSA_H_
++#define _RSA_H_ 1
++
++#include <rsaref/global.h>
++
+ int RSAPublicEncrypt PROTO_LIST
+ ((unsigned char *, unsigned int *, unsigned char *, unsigned int,
+ R_RSA_PUBLIC_KEY *, R_RANDOM_STRUCT *));
+@@ -17,3 +22,5 @@
+ int RSAPrivateDecrypt PROTO_LIST
+ ((unsigned char *, unsigned int *, unsigned char *, unsigned int,
+ R_RSA_PRIVATE_KEY *));
++
++#endif
+$NetBSD: patch-af,v 1.2 1998/08/07 11:13:48 agc Exp $
+
+--- a/source/rsaref.h
++++ b/source/rsaref.h
+@@ -8,9 +8,9 @@
+ #ifndef _RSAREF_H_
+ #define _RSAREF_H_ 1
+
+-#include "md2.h"
+-#include "md5.h"
+-#include "des.h"
++#include <rsaref/md2.h>
++#include <rsaref/md5.h>
++#include <rsaref/des.h>
+
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/dev-libs/rsaref/files/rsaref-2.0-libtool.patch b/dev-libs/rsaref/files/rsaref-2.0-libtool.patch
new file mode 100644
index 000000000..ab0798241
--- /dev/null
+++ b/dev-libs/rsaref/files/rsaref-2.0-libtool.patch
@@ -0,0 +1,44 @@
+--- a/install/unix/makefile
++++ b/install/unix/makefile
+@@ -4,8 +4,7 @@
+ O = o
+
+ # commands
+-CC = cc
+-LIB = ar
++CC := ${LIBTOOL} --tag=CC --mode=compile ${CC}
+
+ # name of temporary library script
+ TEMPFILE = $(TEMP)/temp.mak
+@@ -14,18 +13,18 @@
+ STDINCDIR=/usr/include
+
+ # The places to look for include files (in order).
+-INCL = -I. -I$(RSAREFDIR) -I$(STDINCDIR)
++INCL = -I. -I$(RSAREFDIR)
+
+ # name of main executable to build
+ PROG = all
+
+ # Normal C flags.
+-CFLAGS = $(INCL) -O -c -DPROTOTYPES=1
++CFLAGS += $(INCL) -c -DPROTOTYPES=1
+ MFLAGS = -I. -I$(RSAREFDIR)
+
+ # The location of the common source directory.
+ RSAREFDIR = ../source/
+-RSAREFLIB = rsaref.a
++RSAREFLIB = librsaref.la
+
+ # The location of the demo source directory.
+ RDEMODIR = ../rdemo/
+@@ -41,8 +40,7 @@
+ $(RSAREFLIB) : desc.$(O) digit.$(O) md2c.$(O) md5c.$(O) nn.$(O) prime.$(O)\
+ rsa.$(O) r_encode.$(O) r_dh.$(O) r_enhanc.$(O) r_keygen.$(O) r_random.$(O)\
+ r_stdlib.$(O)
+- $(LIB) r $@ $?
+- ranlib $@
++ ${LIBTOOL} --tag=CC --mode=link cc -o $@ ${?:.o=.lo} -rpath ${LIBDIR} -version-info 3:0 ${LDFLAGS}
+
+ rdemo.$(O) : $(RDEMODIR)rdemo.c $(RSAREFDIR)global.h $(RSAREFDIR)rsaref.h
+ $(CC) $(CFLAGS) $(RDEMODIR)rdemo.c
diff --git a/dev-libs/rsaref/files/rsaref-2.0-rsa.patch b/dev-libs/rsaref/files/rsaref-2.0-rsa.patch
new file mode 100644
index 000000000..1f31080c8
--- /dev/null
+++ b/dev-libs/rsaref/files/rsaref-2.0-rsa.patch
@@ -0,0 +1,73 @@
+--- a/source/rsa.c
++++ b/source/rsa.c
+@@ -11,10 +11,10 @@
+ #include "rsa.h"
+ #include "nn.h"
+
+-static int RSAPublicBlock PROTO_LIST
++int RSAPublicBlock PROTO_LIST
+ ((unsigned char *, unsigned int *, unsigned char *, unsigned int,
+ R_RSA_PUBLIC_KEY *));
+-static int RSAPrivateBlock PROTO_LIST
++int RSAPrivateBlock PROTO_LIST
+ ((unsigned char *, unsigned int *, unsigned char *, unsigned int,
+ R_RSA_PRIVATE_KEY *));
+
+@@ -33,6 +33,9 @@
+ unsigned char byte, pkcsBlock[MAX_RSA_MODULUS_LEN];
+ unsigned int i, modulusLen;
+
++ if (inputLen+3>MAX_RSA_MODULUS_LEN) return (RE_LEN);
++ if (publicKey->bits > MAX_RSA_MODULUS_BITS) return (RE_LEN);
++
+ modulusLen = (publicKey->bits + 7) / 8;
+ if (inputLen + 11 > modulusLen)
+ return (RE_LEN);
+@@ -78,6 +81,9 @@
+ unsigned char pkcsBlock[MAX_RSA_MODULUS_LEN];
+ unsigned int i, modulusLen, pkcsBlockLen;
+
++ if (inputLen>MAX_RSA_MODULUS_LEN) return (RE_LEN);
++ if (publicKey->bits > MAX_RSA_MODULUS_BITS) return (RE_LEN);
++
+ modulusLen = (publicKey->bits + 7) / 8;
+ if (inputLen > modulusLen)
+ return (RE_LEN);
+@@ -129,6 +135,9 @@
+ unsigned char pkcsBlock[MAX_RSA_MODULUS_LEN];
+ unsigned int i, modulusLen;
+
++ if (inputLen+3>MAX_RSA_MODULUS_LEN) return (RE_LEN);
++ if (privateKey->bits > MAX_RSA_MODULUS_BITS) return (RE_LEN);
++
+ modulusLen = (privateKey->bits + 7) / 8;
+ if (inputLen + 11 > modulusLen)
+ return (RE_LEN);
+@@ -168,6 +177,9 @@
+ unsigned char pkcsBlock[MAX_RSA_MODULUS_LEN];
+ unsigned int i, modulusLen, pkcsBlockLen;
+
++ if (inputLen>MAX_RSA_MODULUS_LEN) return (RE_LEN);
++ if (privateKey->bits > MAX_RSA_MODULUS_BITS) return (RE_LEN);
++
+ modulusLen = (privateKey->bits + 7) / 8;
+ if (inputLen > modulusLen)
+ return (RE_LEN);
+@@ -212,7 +224,7 @@
+ Assumes inputLen < length of modulus.
+ Requires input < modulus.
+ */
+-static int RSAPublicBlock (output, outputLen, input, inputLen, publicKey)
++int RSAPublicBlock (output, outputLen, input, inputLen, publicKey)
+ unsigned char *output; /* output block */
+ unsigned int *outputLen; /* length of output block */
+ unsigned char *input; /* input block */
+@@ -252,7 +264,7 @@
+ Assumes inputLen < length of modulus.
+ Requires input < modulus.
+ */
+-static int RSAPrivateBlock (output, outputLen, input, inputLen, privateKey)
++int RSAPrivateBlock (output, outputLen, input, inputLen, privateKey)
+ unsigned char *output; /* output block */
+ unsigned int *outputLen; /* length of output block */
+ unsigned char *input; /* input block */
diff --git a/dev-libs/rsaref/metadata.xml b/dev-libs/rsaref/metadata.xml
new file mode 100644
index 000000000..496077d78
--- /dev/null
+++ b/dev-libs/rsaref/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+</maintainer>
+<longdescription>
+RSAREF is a free, portable software developer's library of popular
+encryption and authentication algorithms. The name "RSAREF" means
+"RSA reference." RSA Laboratories intends RSAREF to serve as a free,
+educational reference implementation of modern public- and secret-key
+cryptography.
+
+RSAREF 2.0 supports the following algorithms:
+
+ o RSA encryption and key generation, as defined by RSA
+ Laboratories' Public-Key Cryptography Standards (PKCS)
+
+ o MD2 and MD5 message digests
+
+ o DES (Data Encryption Standard) in cipher-block chaining mode
+
+ o Diffie-Hellman key agreement
+
+ o DESX, RSA Data Security's efficient, secure DES enhancement
+
+ o Triple-DES, for added security with three DES operations
+</longdescription>
+</pkgmetadata>
diff --git a/dev-libs/rsaref/rsaref-2.0.ebuild b/dev-libs/rsaref/rsaref-2.0.ebuild
new file mode 100644
index 000000000..621e794ce
--- /dev/null
+++ b/dev-libs/rsaref/rsaref-2.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Encryption/authentication library, RSA/MDX/DES"
+HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
+SRC_URI="https://archive.netbsd.org/pub/pkgsrc-archive/distfiles/2021Q3/${PN}.tar.Z -> ${P}.tar.Z"
+S="${WORKDIR}"
+
+LICENSE="RSAREF"
+SLOT="0/3"
+KEYWORDS="~amd64"
+
+BDEPEND="sys-devel/libtool"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-global.patch
+ "${FILESDIR}"/${P}-includes.patch
+ "${FILESDIR}"/${P}-libtool.patch
+ "${FILESDIR}"/${P}-rsa.patch
+)
+
+DOCS=( doc )
+
+src_unpack() {
+ default
+
+ cd "${S}"/source || die
+ mkdir ${PN} || die
+ cp *.h ${PN} || die
+}
+
+src_compile() {
+ # XXX: fails with slibtool
+ emake -C install -f unix/makefile librsaref.la \
+ LIBTOOL=libtool LIBDIR="${EPREFIX}/usr/$(get_libdir)"
+}
+
+src_install() {
+ dolib.so install/.libs/lib${PN}.so*
+ doheader -r source/${PN}
+ einstalldocs
+}