brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 5b9ff0c Raw
134 lines · cpp
1// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s2 3#include <assert.h>4#include <rmd160.h>5#include <stdio.h>6#include <stdlib.h>7#include <string.h>8 9void test1() {10  RMD160_CTX ctx;11  uint8_t entropy[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 };12  uint8_t digest[RMD160_DIGEST_LENGTH];13 14  RMD160Init(&ctx);15  RMD160Update(&ctx, entropy, __arraycount(entropy));16  RMD160Final(digest, &ctx);17 18  printf("test1: '");19  for (size_t i = 0; i < __arraycount(digest); i++)20    printf("%02x", digest[i]);21  printf("'\n");22}23 24void test2() {25  RMD160_CTX ctx;26  uint8_t entropy[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 };27  char digest[RMD160_DIGEST_STRING_LENGTH];28 29  RMD160Init(&ctx);30  RMD160Update(&ctx, entropy, __arraycount(entropy));31  char *p = RMD160End(&ctx, digest);32  assert(p == digest);33 34  printf("test2: '%s'\n", digest);35}36 37void test3() {38  RMD160_CTX ctx;39  uint8_t entropy[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 };40 41  RMD160Init(&ctx);42  RMD160Update(&ctx, entropy, __arraycount(entropy));43  char *p = RMD160End(&ctx, NULL);44  assert(strlen(p) == RMD160_DIGEST_STRING_LENGTH - 1);45 46  printf("test3: '%s'\n", p);47 48  free(p);49}50 51void test4() {52  char digest[RMD160_DIGEST_STRING_LENGTH];53 54  char *p = RMD160File("/etc/fstab", digest);55  assert(p == digest);56 57  printf("test4: '%s'\n", p);58}59 60void test5() {61  char *p = RMD160File("/etc/fstab", NULL);62  assert(strlen(p) == RMD160_DIGEST_STRING_LENGTH - 1);63 64  printf("test5: '%s'\n", p);65 66  free(p);67}68 69void test6() {70  char digest[RMD160_DIGEST_STRING_LENGTH];71 72  char *p = RMD160FileChunk("/etc/fstab", digest, 10, 20);73  assert(p == digest);74 75  printf("test6: '%s'\n", p);76}77 78void test7() {79  char *p = RMD160FileChunk("/etc/fstab", NULL, 10, 20);80  assert(strlen(p) == RMD160_DIGEST_STRING_LENGTH - 1);81 82  printf("test7: '%s'\n", p);83 84  free(p);85}86 87void test8() {88  uint8_t entropy[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 };89  char digest[RMD160_DIGEST_STRING_LENGTH];90 91  char *p = RMD160Data(entropy, __arraycount(entropy), digest);92  assert(p == digest);93 94  printf("test8: '%s'\n", p);95}96 97void test9() {98  uint8_t entropy[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 };99 100  char *p = RMD160Data(entropy, __arraycount(entropy), NULL);101  assert(strlen(p) == RMD160_DIGEST_STRING_LENGTH - 1);102 103  printf("test9: '%s'\n", p);104 105  free(p);106}107 108int main(void) {109  printf("RMD160\n");110 111  test1();112  test2();113  test3();114  test4();115  test5();116  test6();117  test7();118  test8();119  test9();120 121  // CHECK: RMD160122  // CHECK: test1: '2787e5a006365df6e8e799315b669dc34866783c'123  // CHECK: test2: '2787e5a006365df6e8e799315b669dc34866783c'124  // CHECK: test3: '2787e5a006365df6e8e799315b669dc34866783c'125  // CHECK: test4: '{{.*}}'126  // CHECK: test5: '{{.*}}'127  // CHECK: test6: '{{.*}}'128  // CHECK: test7: '{{.*}}'129  // CHECK: test8: '2787e5a006365df6e8e799315b669dc34866783c'130  // CHECK: test9: '2787e5a006365df6e8e799315b669dc34866783c'131 132  return 0;133}134