• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: GPL-2.0
2 
3 // Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
4 
5 
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <unistd.h>
9 #include <sys/stat.h>
10 #include <sys/types.h>
11 #include <fcntl.h>
12 #include <string.h>
13 #include <stdlib.h>
14 
15 #define MaxCols 80
16 
getlinetxt(FILE * fp,int line,char * stri)17 int getlinetxt(FILE *fp,int line,char *stri){
18     int i;
19     fseek(fp,0,0);
20     for(i=0;i<line;i++)
21         if(fgets(stri,MaxCols,fp)==NULL)
22             return -2;
23     return strlen(stri);
24 }
25 
main(int argc,char ** argv)26 int main(int argc, char **argv)
27 {
28 	int i,j;
29 	char buffer[0x100];
30 	int buf[32];
31 	int *tmp = buf;
32 	FILE *fp1 = NULL;
33 	char *input_file = argv[1];
34 
35 	printf("==================================================================================\n");
36 	if (argc != 2) {
37 		printf("input err!!!!!!!!!!!!!!!! \n");
38 		printf("usage: %s filename\n",argv[0]);
39 		exit(-1);
40 	}
41 	printf("input_file:%s\n",input_file);
42 
43 	fp1 = fopen(input_file, "r");
44 	if (fp1 == NULL) {
45 		printf("open file failed!\n");
46 		return -1;
47 	}
48 #if 0
49 	sprintf(buffer,"cat %s",input_file);
50 	printf("%s\n",buffer);
51 	printf("==================================================================================\n");
52 	system(buffer);
53 	printf("==================================================================================\n");
54 #endif
55     int ii;
56     char tmp_buf[80];
57 #define MAX_ROW 100
58     for(ii=0;ii<MAX_ROW;ii++) {
59         getlinetxt(fp1,ii,tmp_buf);
60             if(memcmp(tmp_buf,"KEY=",4))
61                 continue;
62             else
63                 break;
64     }
65     if(memcmp(tmp_buf,"KEY=",4)) {
66         printf("ERROR: not find KEY=XXXX string!!!\n");
67 	    fclose(fp1);
68     }
69     tmp_buf[79]='\0';
70 
71 	sscanf(tmp_buf,"KEY=%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
72 			tmp + 0, tmp + 1, tmp + 2, tmp + 3, tmp + 4, tmp + 5, tmp + 6, tmp + 7, tmp + 8, tmp + 9, tmp + 10, tmp + 11, tmp + 12, tmp + 13, tmp + 14, tmp + 15,
73 			tmp + 16 + 0, tmp + 16 + 1, tmp + 16 + 2, tmp + 16 + 3, tmp + 16 + 4, tmp + 16 + 5, tmp + 16 + 6, tmp + 16 + 7, tmp + 16 + 8, tmp + 16 + 9, tmp + 16 + 10, tmp + 16 + 11, tmp + 16 + 12, tmp + 16 + 13, tmp + 16 + 14, tmp + 16 + 15
74             );
75 #if 1
76 	printf("==================================================================================\n");
77 	printf("AES KEY:\n");
78 	for (i = 0; i < 32; i++)
79 		printf("%02x", buf[i]);
80 	printf("\n");
81 	printf("==================================================================================\n");
82 #endif
83 	printf("==================================================================================\n");
84 	printf("AES KEY REG VALUE:\n");
85 	for (i = 0; i < 8; i++) {
86 		for (j = 3; j >= 0; j--) {
87 			if (j == 3)
88 				printf("mw 0x100900%02x 0x", (i * 4) + 0xc);
89 			printf("%02x", buf[i * 4 + j]);
90 			if (j == 0)
91 				printf("\n");
92 		}
93 	}
94 	printf("==================================================================================\n");
95 
96 	fclose(fp1);
97 	return 0;
98 }
99 
100