import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / masp / asf / core / sec_signfmt_util.c
1 //#include "sec_osal_light.h"
2 #include "sec_signfmt_util.h"
3
4 /**************************************************************************
5 * GLOBAL VARIABLES
6 **************************************************************************/
7 unsigned int sec_crypto_hash_size[] =
8 {
9 CRYPTO_SIZE_UNKNOWN,
10 SEC_SIZE_HASH_MD5,
11 SEC_SIZE_HASH_SHA1,
12 SEC_SIZE_HASH_SHA256,
13 SEC_SIZE_HASH_SHA512
14 };
15
16 unsigned int sec_crypto_sig_size[] =
17 {
18 CRYPTO_SIZE_UNKNOWN,
19 SEC_SIZE_SIG_RSA512,
20 SEC_SIZE_SIG_RSA1024,
21 SEC_SIZE_SIG_RSA2048
22 };
23
24 /**************************************************************************
25 * UTILITY FUNCTIONS
26 **************************************************************************/
27 unsigned int get_hash_size(SEC_CRYPTO_HASH_TYPE hash)
28 {
29 return sec_crypto_hash_size[hash];
30 }
31
32 unsigned int get_signature_size(SEC_CRYPTO_SIGNATURE_TYPE sig)
33 {
34 return sec_crypto_sig_size[sig];
35 }
36
37 unsigned char is_signfmt_v1(SEC_IMG_HEADER *hdr)
38 {
39 if( 0 == hdr->signature_length )
40 {
41 return true;
42 }
43
44 return false;
45 }
46
47 unsigned char is_signfmt_v2(SEC_IMG_HEADER *hdr)
48 {
49 if( 0 == hdr->signature_length )
50 {
51 return false;
52 }
53 else if( SEC_EXTENSION_MAGIC == hdr->sign_offset )
54 {
55 return false;
56 }
57
58 return true;
59 }
60
61 unsigned char is_signfmt_v3(SEC_IMG_HEADER *hdr)
62 {
63
64 if( SEC_EXTENSION_MAGIC == hdr->sign_offset )
65 {
66 return true;
67 }
68
69 return false;
70 }
71
72
73 unsigned char is_signfmt_v4(SEC_IMG_HEADER *hdr)
74 {
75 SEC_IMG_HEADER_V4 *v4_hdr = (SEC_IMG_HEADER_V4 *)hdr;
76
77 if( SEC_EXTENSION_MAGIC_V4 == v4_hdr->ext_magic)
78 {
79 return true;
80 }
81
82 return false;
83 }
84