]> git.saurik.com Git - apple/security.git/blame - SecurityTests/cspxutils/ccOpensslCompat/ccOpensslCompat.cpp
Security-57740.31.2.tar.gz
[apple/security.git] / SecurityTests / cspxutils / ccOpensslCompat / ccOpensslCompat.cpp
CommitLineData
d8f41ccd
A
1/*
2 * ccOpensslCompat.cpp - verify that the compatibility macros at the end of CommonDigest.h
3 * result in openssl-compatible calls
4 */
5
6#include <stdlib.h>
7#include <strings.h>
8#include <stdio.h>
9#include <unistd.h>
10#include "digestCommonExtern.h"
11#include "common.h"
12
13#define MAX_DIGEST_LEN 64
14
15static void usage(char **argv)
16{
17 printf("usage: %s [options]\n", argv[0]);
18 printf("Options:\n");
19 printf(" q -- quiet\n");
20 /* etc. */
21 exit(1);
22}
23
24int main(int argc, char **argv)
25{
26 int quiet = false;
27 int arg;
28 char *argp;
29
30 for(arg=1; arg<argc; arg++) {
31 argp = argv[arg];
32 switch(argp[0]) {
33 case 'q':
34 quiet = true;
35 break;
36 default:
37 usage(argv);
38 }
39 }
40
41 testStartBanner("ccOpensslCompat", argc, argv);
42
43 const char *str = "digest this";
44 unsigned len = strlen(str);
45 unsigned char digestOS[MAX_DIGEST_LEN];
46 unsigned char digestCC[MAX_DIGEST_LEN];
47
48 /* MD2 */
49 if(!quiet) {
50 printf("...testing MD2\n");
51 }
52 if(md2os(str, len, digestOS)) {
53 printf("***Error on openssl MD2\n");
54 exit(1);
55 }
56 if(md2cc(str, len, digestCC)) {
57 printf("***Error on CommonCrypto MD2\n");
58 exit(1);
59 }
60 if(memcmp(digestOS, digestCC, 16)) {
61 printf("***MD2 Digest miscompare\n");
62 exit(1);
63 }
64
65 /* MD4 */
66 if(!quiet) {
67 printf("...testing MD4\n");
68 }
69 if(md4os(str, len, digestOS)) {
70 printf("***Error on openssl MD4\n");
71 exit(1);
72 }
73 if(md4cc(str, len, digestCC)) {
74 printf("***Error on CommonCrypto MD5\n");
75 exit(1);
76 }
77 if(memcmp(digestOS, digestCC, 16)) {
78 printf("***MD4 Digest miscompare\n");
79 exit(1);
80 }
81
82 /* MD5 */
83 if(!quiet) {
84 printf("...testing MD5\n");
85 }
86 if(md5os(str, len, digestOS)) {
87 printf("***Error on openssl MD5\n");
88 exit(1);
89 }
90 if(md5cc(str, len, digestCC)) {
91 printf("***Error on CommonCrypto MD5\n");
92 exit(1);
93 }
94 if(memcmp(digestOS, digestCC, 16)) {
95 printf("***MD5 Digest miscompare\n");
96 exit(1);
97 }
98
99 /* SHA1 */
100 if(!quiet) {
101 printf("...testing SHA1\n");
102 }
103 if(sha1os(str, len, digestOS)) {
104 printf("***Error on openssl SHA1\n");
105 exit(1);
106 }
107 if(sha1cc(str, len, digestCC)) {
108 printf("***Error on CommonCrypto SHA1\n");
109 exit(1);
110 }
111 if(memcmp(digestOS, digestCC, 20)) {
112 printf("***SHA1 Digest miscompare\n");
113 exit(1);
114 }
115
116 /* SHA224 */
117 if(!quiet) {
118 printf("...testing SHA224\n");
119 }
120 if(sha224os(str, len, digestOS)) {
121 printf("***Error on openssl SHA224\n");
122 exit(1);
123 }
124 if(sha224cc(str, len, digestCC)) {
125 printf("***Error on CommonCrypto SHA224\n");
126 exit(1);
127 }
128 if(memcmp(digestOS, digestCC, 28)) {
129 printf("***SHA224 Digest miscompare\n");
130 exit(1);
131 }
132
133 /* SHA256 */
134 if(!quiet) {
135 printf("...testing SHA256\n");
136 }
137 if(sha256os(str, len, digestOS)) {
138 printf("***Error on openssl SHA256\n");
139 exit(1);
140 }
141 if(sha256cc(str, len, digestCC)) {
142 printf("***Error on CommonCrypto SHA256\n");
143 exit(1);
144 }
145 if(memcmp(digestOS, digestCC, 32)) {
146 printf("***SHA256 Digest miscompare\n");
147 exit(1);
148 }
149
150 /* SHA384 */
151 if(!quiet) {
152 printf("...testing SHA384\n");
153 }
154 if(sha384os(str, len, digestOS)) {
155 printf("***Error on openssl SHA384\n");
156 exit(1);
157 }
158 if(sha384cc(str, len, digestCC)) {
159 printf("***Error on CommonCrypto SHA384\n");
160 exit(1);
161 }
162 if(memcmp(digestOS, digestCC, 48)) {
163 printf("***SHA384 Digest miscompare\n");
164 exit(1);
165 }
166
167 /* SHA512 */
168 if(!quiet) {
169 printf("...testing SHA512\n");
170 }
171 if(sha512os(str, len, digestOS)) {
172 printf("***Error on openssl SHA512\n");
173 exit(1);
174 }
175 if(sha512cc(str, len, digestCC)) {
176 printf("***Error on CommonCrypto SHA512\n");
177 exit(1);
178 }
179 if(memcmp(digestOS, digestCC, 64)) {
180 printf("***SHA512 Digest miscompare\n");
181 exit(1);
182 }
183
184 if(!quiet) {
185 printf("...success\n");
186 }
187 return 0;
188}