Small fixes to make gcrypt routines compile.
authorGuus Sliepen <guus@tinc-vpn.org>
Tue, 4 Sep 2007 14:58:52 +0000 (14:58 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Tue, 4 Sep 2007 14:58:52 +0000 (14:58 +0000)
src/Makefile.am
src/gcrypt/cipher.c
src/gcrypt/cipher.h
src/gcrypt/digest.h
src/gcrypt/rsa.c

index a318dcd5b906131b8cf31dcb3a9b36183d393fd0..acbf4193acc6d9fff7b6f195c9f0d33f8124f919 100644 (file)
@@ -20,7 +20,7 @@ INCLUDES = @INCLUDES@ -I$(top_builddir) -I$(top_srcdir)/lib
 noinst_HEADERS = cipher.h conf.h connection.h control.h crypto.h device.h digest.h edge.h graph.h logger.h meta.h net.h netutl.h node.h process.h      \
        protocol.h route.h rsa.h subnet.h
 
-LIBS = @LIBS@ @LIBINTL@
+LIBS = @LIBS@ @LIBGCRYPT_LIBS@ @LIBINTL@
 
 tincd_LDADD = \
        $(top_builddir)/lib/libvpn.a
index 8920a706aef88a642668de3fbeeeb0c0ca5c3318..71add007dbd543bec79dce6bf2dda2167ace9d33 100644 (file)
@@ -173,7 +173,7 @@ bool cipher_set_key(cipher_t *cipher, void *key, bool encrypt) {
        return true;
 }
 
-bool cipher_set_key(cipher_t *cipher, void *key, size_t len, bool encrypt) {
+bool cipher_set_key_from_rsa(cipher_t *cipher, void *key, size_t len, bool encrypt) {
        memcpy(cipher->key, key + len - cipher->keylen, cipher->keylen + cipher->blklen);
        memcpy(cipher->key + cipher->keylen, key + len - cipher->keylen - cipher->blklen, cipher->blklen);
 
index 593b98574ebc216c09d23c1807226189c6b4d69e..08a7dc545f810b6cecb67343195dd23500305196 100644 (file)
@@ -37,10 +37,10 @@ extern bool cipher_open_by_nid(struct cipher *, int);
 extern bool cipher_open_blowfish_ofb(struct cipher *);
 extern void cipher_close(struct cipher *);
 extern size_t cipher_keylength(const struct cipher *);
-extern void cipher_get_key(const struct cipher *, void *, bool);
+extern void cipher_get_key(const struct cipher *, void *);
 extern bool cipher_set_key(struct cipher *, void *, bool);
 extern bool cipher_set_key_from_rsa(struct cipher *, void *, size_t, bool);
-extern bool cipher_regenerate_key(struct cipher *);
+extern bool cipher_regenerate_key(struct cipher *, bool);
 extern bool cipher_encrypt(struct cipher *, const void *indata, size_t inlen, void *outdata, size_t *outlen, bool oneshot);
 extern bool cipher_decrypt(struct cipher *, const void *indata, size_t inlen, void *outdata, size_t *outlen, bool oneshot);
 extern int cipher_get_nid(const struct cipher *);
index 6a644c7a30ee9832607e99c661285d9e0b0d5c5c..4e3a0c43498c176b8067a065d7710fd20edc08fa 100644 (file)
@@ -30,14 +30,14 @@ typedef struct digest {
        uint16_t len;
 } digest_t;
 
-static bool digest_open_by_name(struct digest *, const char *);
-static bool digest_open_by_nid(struct digest *, int);
-static bool digest_open_sha1(struct digest *);
-static void digest_close(struct digest *);
-static bool digest_create(struct digest *, const void *indata, size_t inlen, void *outdata);
-static bool digest_verify(struct digest *, const void *indata, size_t inlen, const void *digestdata);
-static int digest_get_nid(const struct digest *);
-static size_t digest_length(const struct digest *);
-static bool digest_active(const struct digest *);
+extern bool digest_open_by_name(struct digest *, const char *);
+extern bool digest_open_by_nid(struct digest *, int);
+extern bool digest_open_sha1(struct digest *);
+extern void digest_close(struct digest *);
+extern bool digest_create(struct digest *, const void *indata, size_t inlen, void *outdata);
+extern bool digest_verify(struct digest *, const void *indata, size_t inlen, const void *digestdata);
+extern int digest_get_nid(const struct digest *);
+extern size_t digest_length(const struct digest *);
+extern bool digest_active(const struct digest *);
 
 #endif
index 99ee11b3e32d2d67a105bc9250d82a0b68a5e2a9..bb0f9bb3479fc863e42244d08e9a3bc33885b9cf 100644 (file)
@@ -82,7 +82,7 @@ static bool pem_decode(FILE *fp, const char *header, uint8_t *buf, size_t size,
                        continue;
 
                for(i = 0; line[i] >= ' '; i++) {
-                       if(line[i] >= 128 || line[i] < 0 || b64d[(int)line[i]] == 0xff)
+                       if((signed char)line[i] < 0 || b64d[(int)line[i]] == 0xff)
                                break;
                        word |= b64d[(int)line[i]] << shift;
                        shift -= 6;
@@ -187,31 +187,35 @@ static bool ber_read_mpi(unsigned char **p, size_t *buflen, gcry_mpi_t *mpi) {
 bool rsa_set_hex_public_key(rsa_t *rsa, char *n, char *e) {
        gcry_error_t err = 0;
 
-       err = gcry_mpi_scan(&rsa->n, GCRY_FMT_HEX, n, 0, NULL)
-               ?: gcry_mpi_scan(&rsa->e, GCRY_FMT_HEX, n, 0, NULL);
+       err = gcry_mpi_scan(&rsa->n, GCRYMPI_FMT_HEX, n, 0, NULL)
+               ?: gcry_mpi_scan(&rsa->e, GCRYMPI_FMT_HEX, n, 0, NULL);
 
        if(err) {
                logger(LOG_ERR, _("Error while reading RSA public key: %s"), gcry_strerror(errno));
                return false;
        }
+
+       return true;
 }
 
 bool rsa_set_hex_private_key(rsa_t *rsa, char *n, char *e, char *d) {
        gcry_error_t err = 0;
 
-       err = gcry_mpi_scan(&rsa->n, GCRY_FMT_HEX, n, 0, NULL)
-               ?: gcry_mpi_scan(&rsa->e, GCRY_FMT_HEX, n, 0, NULL)
-               ?: gcry_mpi_scan(&rsa->d, GCRY_FMT_HEX, n, 0, NULL);
+       err = gcry_mpi_scan(&rsa->n, GCRYMPI_FMT_HEX, n, 0, NULL)
+               ?: gcry_mpi_scan(&rsa->e, GCRYMPI_FMT_HEX, n, 0, NULL)
+               ?: gcry_mpi_scan(&rsa->d, GCRYMPI_FMT_HEX, n, 0, NULL);
 
        if(err) {
                logger(LOG_ERR, _("Error while reading RSA public key: %s"), gcry_strerror(errno));
                return false;
        }
+
+       return true;
 }
 
 // Read PEM RSA keys
 
-bool read_pem_rsa_public_key(rsa_t *rsa, FILE *fp) {
+bool rsa_read_pem_public_key(rsa_t *rsa, FILE *fp) {
        uint8_t derbuf[8096], *derp = derbuf;
        size_t derlen;
 
@@ -231,7 +235,7 @@ bool read_pem_rsa_public_key(rsa_t *rsa, FILE *fp) {
        return true;
 }
 
-bool read_pem_rsa_private_key(rsa_t *rsa, FILE *fp) {
+bool rsa_read_pem_private_key(rsa_t *rsa, FILE *fp) {
        uint8_t derbuf[8096], *derp = derbuf;
        size_t derlen;
 
@@ -281,7 +285,7 @@ bool rsa_public_encrypt(rsa_t *rsa, void *in, size_t len, void *out) {
        return true;
 }
 
-bool rsa_public_decrypt(rsa_t *rsa, void *in, size_t len, void *out) {
+bool rsa_private_decrypt(rsa_t *rsa, void *in, size_t len, void *out) {
        gcry_mpi_t inmpi;
        check(gcry_mpi_scan(&inmpi, GCRYMPI_FMT_USG, in, len, NULL));