mirror of
https://git.proxmox.com/git/libgit2
synced 2025-12-26 07:43:01 +00:00
Add support to enable the library to use OpenSSL SHA1 functions
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
This commit is contained in:
parent
89217d8f1a
commit
38c513b9d1
10
Makefile
10
Makefile
@ -3,6 +3,12 @@ all::
|
||||
# Define NO_VISIBILITY if your compiler does not support symbol
|
||||
# visibility in general (and the -fvisibility switch in particular).
|
||||
#
|
||||
# Define OPENSSL_SHA1 if you want use the SHA1 routines from the
|
||||
# OpenSSL crypto library, rather than the built-in C versions.
|
||||
#
|
||||
# Define PPC_SHA1 if you want to use the bundled SHA1 routines that
|
||||
# are optimized for PowerPC, rather than the built-in C versions.
|
||||
#
|
||||
|
||||
DOXYGEN = doxygen
|
||||
INSTALL = install
|
||||
@ -74,9 +80,13 @@ ifdef PPC_SHA1
|
||||
EXTRA_SRC += src/ppc/sha1.c
|
||||
EXTRA_OBJ += src/ppc/sha1ppc.o
|
||||
EXTRA_CFLAGS += -DPPC_SHA1
|
||||
else
|
||||
ifdef OPENSSL_SHA1
|
||||
EXTRA_CFLAGS += -DOPENSSL_SHA1
|
||||
else
|
||||
EXTRA_SRC += src/block-sha1/sha1.c
|
||||
endif
|
||||
endif
|
||||
|
||||
BASIC_CFLAGS := -Isrc
|
||||
ifndef NO_VISIBILITY
|
||||
|
||||
@ -16,7 +16,7 @@ void blk_SHA1_Init(blk_SHA_CTX *ctx);
|
||||
void blk_SHA1_Update(blk_SHA_CTX *ctx, const void *dataIn, unsigned long len);
|
||||
void blk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx);
|
||||
|
||||
#define git_SHA_CTX blk_SHA_CTX
|
||||
#define git_SHA1_Init blk_SHA1_Init
|
||||
#define git_SHA1_Update blk_SHA1_Update
|
||||
#define git_SHA1_Final blk_SHA1_Final
|
||||
#define SHA_CTX blk_SHA_CTX
|
||||
#define SHA1_Init blk_SHA1_Init
|
||||
#define SHA1_Update blk_SHA1_Update
|
||||
#define SHA1_Final blk_SHA1_Final
|
||||
|
||||
26
src/hash.c
26
src/hash.c
@ -28,7 +28,7 @@
|
||||
#include "sha1.h"
|
||||
|
||||
struct git_hash_ctx {
|
||||
git_SHA_CTX c;
|
||||
SHA_CTX c;
|
||||
};
|
||||
|
||||
git_hash_ctx *git_hash_new_ctx(void)
|
||||
@ -38,7 +38,7 @@ git_hash_ctx *git_hash_new_ctx(void)
|
||||
if (!ctx)
|
||||
return NULL;
|
||||
|
||||
git_SHA1_Init(&ctx->c);
|
||||
SHA1_Init(&ctx->c);
|
||||
|
||||
return ctx;
|
||||
}
|
||||
@ -51,37 +51,37 @@ void git_hash_free_ctx(git_hash_ctx *ctx)
|
||||
void git_hash_init(git_hash_ctx *ctx)
|
||||
{
|
||||
assert(ctx);
|
||||
git_SHA1_Init(&ctx->c);
|
||||
SHA1_Init(&ctx->c);
|
||||
}
|
||||
|
||||
void git_hash_update(git_hash_ctx *ctx, const void *data, size_t len)
|
||||
{
|
||||
assert(ctx);
|
||||
git_SHA1_Update(&ctx->c, data, len);
|
||||
SHA1_Update(&ctx->c, data, len);
|
||||
}
|
||||
|
||||
void git_hash_final(git_oid *out, git_hash_ctx *ctx)
|
||||
{
|
||||
assert(ctx);
|
||||
git_SHA1_Final(out->id, &ctx->c);
|
||||
SHA1_Final(out->id, &ctx->c);
|
||||
}
|
||||
|
||||
void git_hash_buf(git_oid *out, const void *data, size_t len)
|
||||
{
|
||||
git_SHA_CTX c;
|
||||
SHA_CTX c;
|
||||
|
||||
git_SHA1_Init(&c);
|
||||
git_SHA1_Update(&c, data, len);
|
||||
git_SHA1_Final(out->id, &c);
|
||||
SHA1_Init(&c);
|
||||
SHA1_Update(&c, data, len);
|
||||
SHA1_Final(out->id, &c);
|
||||
}
|
||||
|
||||
void git_hash_vec(git_oid *out, git_buf_vec *vec, size_t n)
|
||||
{
|
||||
git_SHA_CTX c;
|
||||
SHA_CTX c;
|
||||
size_t i;
|
||||
|
||||
git_SHA1_Init(&c);
|
||||
SHA1_Init(&c);
|
||||
for (i = 0; i < n; i++)
|
||||
git_SHA1_Update(&c, vec[i].data, vec[i].len);
|
||||
git_SHA1_Final(out->id, &c);
|
||||
SHA1_Update(&c, vec[i].data, vec[i].len);
|
||||
SHA1_Final(out->id, &c);
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ int ppc_SHA1_Init(ppc_SHA_CTX *c);
|
||||
int ppc_SHA1_Update(ppc_SHA_CTX *c, const void *p, unsigned long n);
|
||||
int ppc_SHA1_Final(unsigned char *hash, ppc_SHA_CTX *c);
|
||||
|
||||
#define git_SHA_CTX ppc_SHA_CTX
|
||||
#define git_SHA1_Init ppc_SHA1_Init
|
||||
#define git_SHA1_Update ppc_SHA1_Update
|
||||
#define git_SHA1_Final ppc_SHA1_Final
|
||||
#define SHA_CTX ppc_SHA_CTX
|
||||
#define SHA1_Init ppc_SHA1_Init
|
||||
#define SHA1_Update ppc_SHA1_Update
|
||||
#define SHA1_Final ppc_SHA1_Final
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
#ifndef INCLUDE_sha1_h__
|
||||
#define INCLUDE_sha1_h__
|
||||
|
||||
#ifdef PPC_SHA1
|
||||
#if defined(PPC_SHA1)
|
||||
# include "ppc/sha1.h"
|
||||
#elif defined(OPENSSL_SHA1)
|
||||
# include <openssl/sha.h>
|
||||
#else
|
||||
# include "block-sha1/sha1.h"
|
||||
#endif
|
||||
|
||||
@ -59,6 +59,10 @@ ifdef TEST_COVERAGE
|
||||
EXTRA_LIBS += -O0 -lgcov
|
||||
endif
|
||||
|
||||
ifdef OPENSSL_SHA1
|
||||
EXTRA_LIBS += $(CRYPTO_LIB)
|
||||
endif
|
||||
|
||||
BASIC_CFLAGS := -I../src
|
||||
|
||||
ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user