1 /* 2 * Copyright (c) 2022 Rockchip Electronics Co. Ltd. 3 */ 4 #include <getopt.h> 5 #include <stdio.h> 6 #include <string.h> 7 #include "rkcrypto_demo.h" 8 guide(void)9static void guide(void) 10 { 11 printf("\n######## Entry one correct parameter. Example: librkcrypto_demo -a ########\n"); 12 printf(" [-a]: OTPKEY_CIPHER\n"); 13 printf(" [-b]: OTPKEY_CIPHER_VIRT\n"); 14 printf(" [-c]: CIPHER\n"); 15 printf(" [-d]: CIPHER_VIRT\n"); 16 printf(" [-e]: HASH\n"); 17 printf(" [-f]: HASH_VIRT\n"); 18 printf(" [-g]: HMAC\n"); 19 printf(" [-h]: HMAC_VIRT\n"); 20 printf(" [-i]: RSA\n"); 21 printf(" [-j]: AE\n"); 22 printf(" [-k]: AE_VIRT\n"); 23 } 24 main(int argc,char * argv[])25int main(int argc, char *argv[]) 26 { 27 RK_RES res = RK_CRYPTO_ERR_GENERIC; 28 int opt = 0; 29 const char *opt_string = "abcdefghijk"; 30 31 if (argc < 2) 32 guide(); 33 34 while ((opt = getopt(argc, argv, opt_string)) != -1) { 35 switch (opt) { 36 case 'a': 37 printf("TEST OTPKEY_CIPHER:\n"); 38 res = demo_otpkey(); 39 break; 40 case 'b': 41 printf("TEST OTPKEY_CIPHER_VIRT:\n"); 42 res = demo_otpkey_virt(); 43 break; 44 case 'c': 45 printf("TEST CIPHER:\n"); 46 res = demo_cipher(); 47 break; 48 case 'd': 49 printf("TEST CIPHER_VIRT:\n"); 50 res = demo_cipher_virt(); 51 break; 52 case 'e': 53 printf("TEST HASH:\n"); 54 res = demo_hash(); 55 break; 56 case 'f': 57 printf("TEST HASH_VIRT:\n"); 58 res = demo_hash_virt(); 59 break; 60 case 'g': 61 printf("TEST HMAC:\n"); 62 res = demo_hmac(); 63 break; 64 case 'h': 65 printf("TEST HMAC_VIRT:\n"); 66 res = demo_hmac_virt(); 67 break; 68 case 'i': 69 printf("TEST RSA:\n"); 70 res = demo_rsa(); 71 break; 72 case 'j': 73 printf("TEST AE:\n"); 74 res = demo_ae(); 75 break; 76 case 'k': 77 printf("TEST AE_VIRT:\n"); 78 res = demo_ae_virt(); 79 break; 80 case '?': 81 printf("error optopt: %c\n", optopt); 82 break; 83 default: 84 break; 85 } 86 } 87 88 return res; 89 } 90 91