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