This commit accomplishes two things. First, it clears all the pointer-sign warnings in 13-unit-tests-base.c. Second, it fixes const-ness in ldns_sha1, ldns_sha256, ldns_sha384 and ldns_sha512.
#ifndef LDNS_SHA1_H
#define LDNS_SHA1_H
+#include <stdint.h> /* uint32_t and friends */
+#include <stddef.h> /* size_t and NULL */
+
+#if LDNS_BUILD_CONFIG_HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha1(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha1(const unsigned char *data, unsigned int data_len, unsigned char *digest);
#ifdef __cplusplus
}
#ifndef __LDNS_SHA2_H__
#define __LDNS_SHA2_H__
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*
- * Import u_intXX_t size_t type definitions from system headers. You
- * may need to change this, or define these things yourself in this
- * file.
- */
-#include <sys/types.h>
+#include <stdint.h> /* uint32_t and friends */
+#include <stddef.h> /* size_t and NULL */
#if LDNS_BUILD_CONFIG_HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
-#include <inttypes.h>
-
-#endif /* LDNS_BUILD_CONFIG_HAVE_INTTYPES_H */
+#ifdef __cplusplus
+extern "C" {
+#endif
/*** SHA-256/384/512 Various Length Definitions ***********************/
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha256(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha256(const unsigned char *data, unsigned int data_len, unsigned char *digest);
/**
* Convenience function to digest a fixed block of data at once.
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha384(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha384(const unsigned char *data, unsigned int data_len, unsigned char *digest);
/**
* Convenience function to digest a fixed block of data at once.
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha512(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha512(const unsigned char *data, unsigned int data_len, unsigned char *digest);
#ifdef __cplusplus
}
}
unsigned char *
-ldns_sha1(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha1(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha1_ctx ctx;
ldns_sha1_init(&ctx);
}
unsigned char *
-ldns_sha256(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha256(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha256_CTX ctx;
ldns_sha256_init(&ctx);
}
unsigned char *
-ldns_sha512(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha512(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha512_CTX ctx;
ldns_sha512_init(&ctx);
}
unsigned char *
-ldns_sha384(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha384(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha384_CTX ctx;
ldns_sha384_init(&ctx);
#include <ldns/ldns.h>
+/* Avoid signedness warnings */
+#define CH_PTR(ptr) ((char*)(ptr))
+#define UCH_PTR(ptr) ((unsigned char*)(ptr))
+
void print_data_ar(const uint8_t *data, const size_t len) {
size_t i;
int
-test_sha1(char *data, const char *expect_result_str)
+test_sha1(const void *data, const void *expect_result_str)
{
int result;
- char *digest, *d;
+ unsigned char *digest, *d;
unsigned int digest_len;
uint8_t *expect_result;
size_t data_len;
data_len = strlen(data);
- expect_result = malloc(strlen(expect_result_str) / 2);
+ expect_result = malloc(strlen(CH_PTR(expect_result_str)) / 2);
(void) ldns_hexstring_to_data(expect_result, expect_result_str);
-
digest_len = LDNS_SHA1_DIGEST_LENGTH;
digest = malloc(digest_len);
printf("\n");
result = 1;
} else {
- if (strncmp(expect_result, digest, digest_len) != 0) {
+ if (strncmp(CH_PTR(expect_result), CH_PTR(digest), digest_len) != 0) {
printf("Bad sha1 digest: got: ");
print_data_ar(digest, digest_len);
printf("Expected: ");
- printf("%s\n", expect_result);
- printf("Data:\t%s\n", data);
+ printf("%s\n", CH_PTR(expect_result));
+ printf("Data:\t%s\n", CH_PTR(data));
result = 2;
} else {
}
int
-test_sha256(char *data, const char *expect_result_str)
+test_sha256(const void *data, const void *expect_result_str)
{
int result;
- char *digest, *d;
+ unsigned char *digest, *d;
unsigned int digest_len;
uint8_t *expect_result;
size_t data_len;
data_len = strlen(data);
- expect_result = malloc(strlen(expect_result_str) / 2);
+ expect_result = malloc(strlen(CH_PTR(expect_result_str)) / 2);
(void) ldns_hexstring_to_data(expect_result, expect_result_str);
digest_len = LDNS_SHA256_DIGEST_LENGTH;
printf("\n");
result = 1;
} else {
- if (strncmp(expect_result, digest, digest_len) != 0) {
+ if (strncmp(CH_PTR(expect_result), CH_PTR(digest), digest_len) != 0) {
printf("Bad sha256 digest: got: ");
print_data_ar(digest, digest_len);
printf("Expected: ");
- printf("%s\n", expect_result);
- printf("Data:\t%s\n", data);
+ printf("%s\n", CH_PTR(expect_result));
+ printf("Data:\t%s\n", CH_PTR(data));
result = 2;
} else {
{
uint8_t *data;
size_t data_len;
- char *text;
- size_t text_len;
int result = EXIT_SUCCESS;