crypto-algorithms.c

Basic implementations of standard cryptography algorithms, like AES and SHA-1
git clone git://git.finwo.net/lib/crypto-algorithms.c
Log | Files | Refs | README

rot-13_test.c (1381B)


      1 /*********************************************************************
      2 * Filename:   rot-13_test.c
      3 * Author:     Brad Conte (brad AT bradconte.com)
      4 * Copyright:
      5 * Disclaimer: This code is presented "as is" without any guarantees.
      6 * Details:    Performs known-answer tests on the corresponding ROT-13
      7 	          implementation. These tests do not encompass the full
      8 	          range of available test vectors, however, if the tests
      9 	          pass it is very, very likely that the code is correct
     10 	          and was compiled properly. This code also serves as
     11 	          example usage of the functions.
     12 *********************************************************************/
     13 
     14 /*************************** HEADER FILES ***************************/
     15 #include <stdio.h>
     16 #include <string.h>
     17 #include "rot-13.h"
     18 
     19 /*********************** FUNCTION DEFINITIONS ***********************/
     20 int rot13_test()
     21 {
     22 	char text[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"};
     23 	char code[] = {"NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm"};
     24 	char buf[1024];
     25 	int pass = 1;
     26 
     27 	// To encode, just apply ROT-13.
     28 	strcpy(buf, text);
     29 	rot13(buf);
     30 	pass = pass && !strcmp(code, buf);
     31 
     32 	// To decode, just re-apply ROT-13.
     33 	rot13(buf);
     34 	pass = pass && !strcmp(text, buf);
     35 
     36 	return(pass);
     37 }
     38 
     39 int main()
     40 {
     41 	printf("ROT-13 tests: %s\n", rot13_test() ? "SUCCEEDED" : "FAILED");
     42 
     43 	return(0);
     44 }