1/* |
2 * Copyright (c) 1999 - 2003 Kungliga Tekniska H�gskolan |
3 * (Royal Institute of Technology, Stockholm, Sweden). 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright --- 27 unchanged lines hidden (view full) --- 38#include <string.h> 39#include <err.h> 40#include <roken.h> 41 42#include <asn1-common.h> 43#include <asn1_err.h> 44#include <der.h> 45 |
46#include "check-common.h" |
47 |
48RCSID("$Id: check-der.c,v 1.9 2003/01/23 10:19:49 lha Exp $"); |
49 |
50static int |
51cmp_integer (void *a, void *b) 52{ 53 int *ia = (int *)a; 54 int *ib = (int *)b; 55 56 return *ib - *ia; 57} 58 --- 20 unchanged lines hidden (view full) --- 79 int ntests = sizeof(tests) / sizeof(*tests); 80 81 for (i = 0; i < ntests; ++i) { 82 tests[i].val = &values[i]; 83 asprintf (&tests[i].name, "integer %d", values[i]); 84 } 85 86 return generic_test (tests, ntests, sizeof(int), |
87 (generic_encode)encode_integer, 88 (generic_length) length_integer, 89 (generic_decode)decode_integer, |
90 cmp_integer); 91} 92 93static int 94cmp_octet_string (void *a, void *b) 95{ 96 octet_string *oa = (octet_string *)a; 97 octet_string *ob = (octet_string *)b; --- 13 unchanged lines hidden (view full) --- 111 {NULL, 10, "\x04\x08\x01\x23\x45\x67\x89\xab\xcd\xef"} 112 }; 113 int ntests = sizeof(tests) / sizeof(*tests); 114 115 tests[0].val = &s1; 116 asprintf (&tests[0].name, "a octet string"); 117 118 return generic_test (tests, ntests, sizeof(octet_string), |
119 (generic_encode)encode_octet_string, 120 (generic_length)length_octet_string, 121 (generic_decode)decode_octet_string, |
122 cmp_octet_string); 123} 124 125static int 126cmp_general_string (void *a, void *b) 127{ 128 unsigned char **sa = (unsigned char **)a; 129 unsigned char **sb = (unsigned char **)b; --- 10 unchanged lines hidden (view full) --- 140 {NULL, 13, "\x1b\x0b\x54\x65\x73\x74\x20\x55\x73\x65\x72\x20\x31"} 141 }; 142 int ntests = sizeof(tests) / sizeof(*tests); 143 144 tests[0].val = &s1; 145 asprintf (&tests[0].name, "the string \"%s\"", s1); 146 147 return generic_test (tests, ntests, sizeof(unsigned char *), |
148 (generic_encode)encode_general_string, 149 (generic_length)length_general_string, 150 (generic_decode)decode_general_string, |
151 cmp_general_string); 152} 153 154static int 155cmp_generalized_time (void *a, void *b) 156{ 157 time_t *ta = (time_t *)a; 158 time_t *tb = (time_t *)b; --- 13 unchanged lines hidden (view full) --- 172 int ntests = sizeof(tests) / sizeof(*tests); 173 174 for (i = 0; i < ntests; ++i) { 175 tests[i].val = &values[i]; 176 asprintf (&tests[i].name, "time %d", (int)values[i]); 177 } 178 179 return generic_test (tests, ntests, sizeof(time_t), |
180 (generic_encode)encode_generalized_time, 181 (generic_length)length_generalized_time, 182 (generic_decode)decode_generalized_time, |
183 cmp_generalized_time); 184} 185 186int 187main(int argc, char **argv) 188{ 189 int ret = 0; 190 191 ret += test_integer (); 192 ret += test_octet_string (); 193 ret += test_general_string (); 194 ret += test_generalized_time (); 195 196 return ret; 197} |