Commit 4eaf4a125cb79116cc2d22fb31b83c2fd8680db5

Guillem Jover 2011-10-23T19:20:26

Add compatibility with other BSDs

diff --git a/COPYING b/COPYING
index 9f2c0db..9f03197 100644
--- a/COPYING
+++ b/COPYING
@@ -3,7 +3,7 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Files:
  *
 Copyright:
- Copyright © 2009, 2016 Guillem Jover <guillem@hadrons.org>
+ Copyright © 2009, 2011, 2016 Guillem Jover <guillem@hadrons.org>
 License: BSD-3-clause
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
diff --git a/include/Makefile.am b/include/Makefile.am
index 2fef6bc..e65451e 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -8,3 +8,11 @@ include_HEADERS = \
 	sha1.h \
 	sha2.h \
 	$(nil)
+
+# Compatibility headers
+include_HEADERS += \
+	ripemd.h \
+	sha.h \
+	sha256.h \
+	sha512.h \
+	$(nil)
diff --git a/include/ripemd.h b/include/ripemd.h
new file mode 100644
index 0000000..fd5311d
--- /dev/null
+++ b/include/ripemd.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright © 2011 Guillem Jover <guillem@hadrons.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LIBMD_RIPEMD_H
+#define LIBMD_RIPEMD_H
+
+#include <rmd160.h>
+
+/* For compatibility with FreeBSD and DragonFlyBSD. */
+
+#define RIPEMD160_DIGEST_LENGTH	20
+
+typedef RMD160_CTX RIPEMD160_CTX;
+
+#define RIPEMD160_Init		RMD160Init
+#define RIPEMD160_Update	RMD160Update
+#define RIPEMD160_Final		RMD160Final
+#define RIPEMD160_End		RMD160End
+#define RIPEMD160_File		RMD160File
+#define RIPEMD160_FileChunk	RMD160FileChunk
+#define RIPEMD160_Data		RMD160Data
+
+#endif
diff --git a/include/sha.h b/include/sha.h
new file mode 100644
index 0000000..6e9e63e
--- /dev/null
+++ b/include/sha.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright © 2011 Guillem Jover <guillem@hadrons.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LIBMD_SHA_H
+#define LIBMD_SHA_H
+
+/* For compatibility with FreeBSD and DragonFlyBSD. */
+
+#include <sha1.h>
+
+#define SHA_DIGEST_LENGTH	SHA1_DIGEST_LENGTH
+
+typedef SHA1_CTX SHA_CTX;
+
+#define SHA1_Init		SHA1Init
+#define SHA1_Update		SHA1Update
+#define SHA1_Final		SHA1Final
+#define SHA1_End		SHA1End
+#define SHA1_File		SHA1File
+#define SHA1_FileChunk		SHA1FileChunk
+#define SHA1_Data		SHA1Data
+
+#endif
diff --git a/include/sha256.h b/include/sha256.h
new file mode 100644
index 0000000..6a581f3
--- /dev/null
+++ b/include/sha256.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright © 2011 Guillem Jover <guillem@hadrons.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LIBMD_SHA256_H
+#define LIBMD_SHA256_H
+
+/* For compatibility with FreeBSD and DragonFlyBSD. */
+
+#include <sha2.h>
+
+typedef SHA2_CTX SHA256_CTX;
+
+#define SHA256_Init		SHA256Init
+#define SHA256_Update		SHA256Update
+#define SHA256_Final		SHA256Final
+#define SHA256_End		SHA256End
+#define SHA256_File		SHA256File
+#define SHA256_FileChunk	SHA256FileChunk
+#define SHA256_Data		SHA256Data
+
+#endif
diff --git a/include/sha512.h b/include/sha512.h
new file mode 100644
index 0000000..2b2baef
--- /dev/null
+++ b/include/sha512.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright © 2011 Guillem Jover <guillem@hadrons.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LIBMD_SHA512_H
+#define LIBMD_SHA512_H
+
+/* For compatibility with FreeBSD and DragonFlyBSD. */
+
+#include <sha2.h>
+
+typedef SHA2_CTX SHA512_CTX;
+typedef SHA2_CTX SHA384_CTX;
+
+#define SHA384_Init		SHA384Init
+#define SHA384_Update		SHA384Update
+#define SHA384_Final		SHA384Final
+
+#define SHA512_Init		SHA512Init
+#define SHA512_Update		SHA512Update
+#define SHA512_Final		SHA512Final
+#define SHA512_End		SHA512End
+#define SHA512_Data		SHA512File
+#define SHA512_File		SHA512FileChunk
+#define SHA512_FileChunk	SHA512Data
+
+#endif