constants.c constants.h \
debug.c debug.h \
dict.c dict.h \
+ hash.c hash.h \
lexer.c lexer.h \
library.c library.h \
pkcs11.h pkcs11x.h \
asn1.c asn1.h \
basic.asn basic.asn.h \
base64.c base64.h \
- checksum.c checksum.h \
oid.c oid.h \
openssl.asn openssl.asn.h \
pem.c pem.h \
#include "config.h"
-#include "checksum.h"
+#include "hash.h"
#include <assert.h>
#include <stdarg.h>
}
void
-p11_checksum_sha1 (unsigned char *checksum,
- const void *input,
- size_t length,
- ...)
+p11_hash_sha1 (unsigned char *hash,
+ const void *input,
+ size_t length,
+ ...)
{
va_list va;
sha1_t sha1;
}
va_end (va);
- sha1_final (&sha1, checksum);
+ sha1_final (&sha1, hash);
sha1_invalidate (&sha1);
}
}
void
-p11_checksum_md5 (unsigned char *checksum,
- const void *input,
- size_t length,
- ...)
+p11_hash_md5 (unsigned char *hash,
+ const void *input,
+ size_t length,
+ ...)
{
va_list va;
md5_t md5;
}
va_end (va);
- md5_final (&md5, checksum);
+ md5_final (&md5, hash);
md5_invalidate (&md5);
}
* Author: Stef Walter <stefw@redhat.com>
*/
-#ifndef P11_CHECKSUM_H_
-#define P11_CHECKSUM_H_
+#ifndef P11_HASH_H_
+#define P11_HASH_H_
#include "compat.h"
* These particular algorithms would be poor choices for that.
*/
-#define P11_CHECKSUM_SHA1_LENGTH 20
+#define P11_HASH_MD5_LEN 16
-#define P11_CHECKSUM_MD5_LENGTH 16
+void p11_hash_md5 (unsigned char *hash,
+ const void *input,
+ size_t length,
+ ...) GNUC_NULL_TERMINATED;
-void p11_checksum_md5 (unsigned char *checksum,
- const void *input,
- size_t length,
- ...) GNUC_NULL_TERMINATED;
+#define P11_HASH_SHA1_LEN 20
-void p11_checksum_sha1 (unsigned char *checksum,
- const void *input,
- size_t length,
- ...) GNUC_NULL_TERMINATED;
+void p11_hash_sha1 (unsigned char *hash,
+ const void *input,
+ size_t length,
+ ...) GNUC_NULL_TERMINATED;
-#endif /* P11_CHECKSUM_H_ */
+#endif /* P11_HASH_H_ */
CHECK_PROGS = \
test-compat \
+ test-hash \
test-dict \
test-array \
test-constants \
CHECK_PROGS += \
test-asn1 \
- test-checksum \
test-base64 \
test-pem \
test-oid \
#include <stdio.h>
#include <string.h>
-#include "checksum.h"
+#include "hash.h"
const char *sha1_input[] = {
"abc",
static void
test_sha1 (CuTest *cu)
{
- unsigned char checksum[P11_CHECKSUM_SHA1_LENGTH];
+ unsigned char checksum[P11_HASH_SHA1_LEN];
size_t len;
int i;
memset (checksum, 0, sizeof (checksum));
len = strlen (sha1_input[i]);
- p11_checksum_sha1 (checksum, sha1_input[i], len, NULL);
- CuAssertTrue (cu, memcmp (sha1_checksum[i], checksum, P11_CHECKSUM_SHA1_LENGTH) == 0);
+ p11_hash_sha1 (checksum, sha1_input[i], len, NULL);
+ CuAssertTrue (cu, memcmp (sha1_checksum[i], checksum, P11_HASH_SHA1_LEN) == 0);
if (len > 6) {
- p11_checksum_sha1 (checksum, sha1_input[i], 6, sha1_input[i] + 6, len - 6, NULL);
- CuAssertTrue (cu, memcmp (sha1_checksum[i], checksum, P11_CHECKSUM_SHA1_LENGTH) == 0);
+ p11_hash_sha1 (checksum, sha1_input[i], 6, sha1_input[i] + 6, len - 6, NULL);
+ CuAssertTrue (cu, memcmp (sha1_checksum[i], checksum, P11_HASH_SHA1_LEN) == 0);
}
}
}
static void
test_sha1_long (CuTest *cu)
{
- unsigned char checksum[P11_CHECKSUM_SHA1_LENGTH];
+ unsigned char checksum[P11_HASH_SHA1_LEN];
char *expected = "\x34\xAA\x97\x3C\xD4\xC4\xDA\xA4\xF6\x1E\xEB\x2B\xDB\xAD\x27\x31\x65\x34\x01\x6F";
char *input;
CuAssertTrue (cu, input != NULL);
memset (input, 'a', 1000000);
- p11_checksum_sha1 (checksum, input, strlen (input), NULL);
- CuAssertTrue (cu, memcmp (expected, checksum, P11_CHECKSUM_SHA1_LENGTH) == 0);
+ p11_hash_sha1 (checksum, input, strlen (input), NULL);
+ CuAssertTrue (cu, memcmp (expected, checksum, P11_HASH_SHA1_LEN) == 0);
}
const char *md5_input[] = {
static void
test_md5 (CuTest *cu)
{
- unsigned char checksum[P11_CHECKSUM_MD5_LENGTH];
+ unsigned char checksum[P11_HASH_MD5_LEN];
size_t len;
int i;
memset (checksum, 0, sizeof (checksum));
len = strlen (md5_input[i]);
- p11_checksum_md5 (checksum, md5_input[i], len, NULL);
- CuAssertTrue (cu, memcmp (md5_checksum[i], checksum, P11_CHECKSUM_MD5_LENGTH) == 0);
+ p11_hash_md5 (checksum, md5_input[i], len, NULL);
+ CuAssertTrue (cu, memcmp (md5_checksum[i], checksum, P11_HASH_MD5_LEN) == 0);
if (len > 5) {
- p11_checksum_md5 (checksum, md5_input[i], 5, md5_input[i] + 5, len - 5, NULL);
- CuAssertTrue (cu, memcmp (md5_checksum[i], checksum, P11_CHECKSUM_MD5_LENGTH) == 0);
+ p11_hash_md5 (checksum, md5_input[i], 5, md5_input[i] + 5, len - 5, NULL);
+ CuAssertTrue (cu, memcmp (md5_checksum[i], checksum, P11_HASH_MD5_LEN) == 0);
}
}
}
#include "asn1.h"
#define P11_DEBUG_FLAG P11_DEBUG_TRUST
-#include "checksum.h"
#include "debug.h"
+#include "hash.h"
#include "oid.h"
#include "utf8.h"
#include "x509.h"
return_val_if_fail (ret == ASN1_SUCCESS, false);
return_val_if_fail (end >= start, false);
- p11_checksum_sha1 (keyid, (der + start), (end - start) + 1, NULL);
+ p11_hash_sha1 (keyid, (der + start), (end - start) + 1, NULL);
return true;
}
#include "attrs.h"
#include "buffer.h"
-#include "checksum.h"
#include "compat.h"
#include "debug.h"
#include "extract.h"
+#include "hash.h"
#include "library.h"
#include "save.h"
* as the password for this keyed digest.
*/
length = buffer->len;
- digest = p11_buffer_append (buffer, P11_CHECKSUM_SHA1_LENGTH);
+ digest = p11_buffer_append (buffer, P11_HASH_SHA1_LEN);
return_val_if_fail (digest != NULL, false);
- p11_checksum_sha1 (digest,
- "\000c\000h\000a\000n\000g\000e\000i\000t", 16, /* default password */
- "Mighty Aphrodite", 16, /* go figure */
- buffer->data, length,
- NULL);
+ p11_hash_sha1 (digest,
+ "\000c\000h\000a\000n\000g\000e\000i\000t", 16, /* default password */
+ "Mighty Aphrodite", 16, /* go figure */
+ buffer->data, length,
+ NULL);
return_val_if_fail (p11_buffer_ok (buffer), false);
return true;
#include "asn1.h"
#include "attrs.h"
#include "buffer.h"
-#include "checksum.h"
#include "compat.h"
#include "debug.h"
#include "dict.h"
#include "extract.h"
+#include "hash.h"
#include "library.h"
#include "oid.h"
#include "pem.h"
static char *
symlink_for_subject_hash (p11_extract_info *ex)
{
- unsigned char md[P11_CHECKSUM_SHA1_LENGTH];
+ unsigned char md[P11_HASH_SHA1_LEN];
p11_buffer der;
CK_ATTRIBUTE *subject;
unsigned long hash;
return_val_if_fail (der.data != NULL, NULL);
if (p11_openssl_canon_name_der (ex->asn1_defs, &der)) {
- p11_checksum_sha1 (md, der.data, der.len, NULL);
+ p11_hash_sha1 (md, der.data, der.len, NULL);
hash = (
((unsigned long)md[0] ) | ((unsigned long)md[1] << 8L) |
static char *
symlink_for_subject_old_hash (p11_extract_info *ex)
{
- unsigned char md[P11_CHECKSUM_MD5_LENGTH];
+ unsigned char md[P11_HASH_MD5_LEN];
CK_ATTRIBUTE *subject;
unsigned long hash;
char *linkname;
if (!subject)
return NULL;
- p11_checksum_md5 (md, subject->pValue, subject->ulValueLen, NULL);
+ p11_hash_md5 (md, subject->pValue, subject->ulValueLen, NULL);
hash = (
((unsigned long)md[0] ) | ((unsigned long)md[1] << 8L) |
#include "asn1.h"
#include "attrs.h"
#include "builder.h"
-#include "checksum.h"
#include "constants.h"
#include "debug.h"
+#include "hash.h"
#include "index.h"
#include "library.h"
#include "oid.h"
size_t length,
CK_BYTE *check_value)
{
- unsigned char checksum[P11_CHECKSUM_SHA1_LENGTH];
- p11_checksum_sha1 (checksum, data, length, NULL);
+ unsigned char checksum[P11_HASH_SHA1_LEN];
+ p11_hash_sha1 (checksum, data, length, NULL);
memcpy (check_value, checksum, 3);
}
const unsigned char *der,
size_t der_len)
{
- unsigned char checksum[P11_CHECKSUM_SHA1_LENGTH];
+ unsigned char checksum[P11_HASH_SHA1_LEN];
CK_BBOOL falsev = CK_FALSE;
CK_ULONG zero = 0UL;
CK_BYTE checkv[3];
CK_RV rv;
CK_OBJECT_CLASS klassv = CKO_NSS_TRUST;
- CK_BYTE sha1v[P11_CHECKSUM_SHA1_LENGTH];
- CK_BYTE md5v[P11_CHECKSUM_MD5_LENGTH];
+ CK_BYTE sha1v[P11_HASH_SHA1_LEN];
+ CK_BYTE md5v[P11_HASH_MD5_LEN];
CK_BBOOL generatedv = CK_FALSE;
CK_BBOOL falsev = CK_FALSE;
md5_hash.type = CKA_INVALID;
sha1_hash.type = CKA_INVALID;
} else {
- p11_checksum_md5 (md5v, value, length, NULL);
- p11_checksum_sha1 (sha1v, value, length, NULL);
+ p11_hash_md5 (md5v, value, length, NULL);
+ p11_hash_sha1 (sha1v, value, length, NULL);
}
if (!issuer)
issuer = &invalid;
#include "array.h"
#include "asn1.h"
#include "attrs.h"
-#include "checksum.h"
#define P11_DEBUG_FLAG P11_DEBUG_TRUST
#include "debug.h"
#include "dict.h"
+#include "hash.h"
#include "library.h"
#include "module.h"
#include "oid.h"
int flags;
};
-#define ID_LENGTH P11_CHECKSUM_SHA1_LENGTH
+#define ID_LENGTH P11_HASH_SHA1_LEN
typedef int (* parser_func) (p11_parser *parser,
const unsigned char *data,
#include "attrs.h"
#include "builder.h"
-#include "checksum.h"
+#include "hash.h"
#include "debug.h"
#include "index.h"
#include "library.h"
static void
test_build_certificate_empty (CuTest *cu)
{
- unsigned char checksum[P11_CHECKSUM_SHA1_LENGTH];
+ unsigned char checksum[P11_HASH_SHA1_LEN];
CK_ULONG domain = 0;
CK_ULONG category = 0;
setup (cu);
- p11_checksum_sha1 (checksum, test_cacert3_ca_der, sizeof (test_cacert3_ca_der), NULL);
+ p11_hash_sha1 (checksum, test_cacert3_ca_der, sizeof (test_cacert3_ca_der), NULL);
attrs = NULL;
merge = p11_attrs_dup (input);
#define CRYPTOKI_EXPORTS
#include "attrs.h"
-#include "checksum.h"
#include "debug.h"
+#include "hash.h"
#include "library.h"
#include "pkcs11x.h"
#include "test-data.h"
CK_OBJECT_HANDLE trust,
CK_ATTRIBUTE *cert)
{
- unsigned char sha1[P11_CHECKSUM_SHA1_LENGTH];
- unsigned char md5[P11_CHECKSUM_MD5_LENGTH];
+ unsigned char sha1[P11_HASH_SHA1_LEN];
+ unsigned char md5[P11_HASH_MD5_LEN];
unsigned char check[128];
CK_ATTRIBUTE *value;
CK_RV rv;
value = p11_attrs_find_valid (cert, CKA_VALUE);
CuAssertPtrNotNull (cu, value);
- p11_checksum_md5 (check, value->pValue, value->ulValueLen, NULL);
+ p11_hash_md5 (check, value->pValue, value->ulValueLen, NULL);
CuAssertTrue (cu, memcmp (md5, check, sizeof (md5)) == 0);
- p11_checksum_sha1 (check, value->pValue, value->ulValueLen, NULL);
+ p11_hash_sha1 (check, value->pValue, value->ulValueLen, NULL);
CuAssertTrue (cu, memcmp (sha1, check, sizeof (sha1)) == 0);
}