aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortadd.kao <tadd.kao@mediatek.com>2015-10-19 17:21:14 +0800
committerMister Oyster <oysterized@gmail.com>2017-04-11 11:00:09 +0200
commit912153151aa23d37bf6c0ada3ce86f1aaa41f228 (patch)
treeb1de19b469c5ec1687fee20069ce18634e51ae7c
parentd7ada51bddf26aeb7c313889ad11008a91a4808f (diff)
masp: remove unused filp related functions.
[Detail] Open file in kernel space is not a secure way. [Solution] Remove the file operation in kernel since they are not used. [Feature] Secure Boot BUG=23460645 Change-Id: I79bd3f4f29ca1b1b3aa4ca43b8e8d60382341dbc Signed-off-by: tadd.kao <tadd.kao@mediatek.com> CR-Id: ALPS02363269
-rwxr-xr-xdrivers/misc/mediatek/masp/asf/Makefile.core35
-rwxr-xr-xdrivers/misc/mediatek/masp/asf/Makefile.crypto12
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/aes_legacy.h19
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/aes_so.h22
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/alg_sha1.h26
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/bgn_asm.h28
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/bgn_export.h33
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/bgn_internal.h55
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/masp_version.h4
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/rsa_def.h66
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_aes.h23
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_auth.h24
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_boot.h68
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_core.h22
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_lib.h69
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_ccci.h12
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg.h32
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_common.h75
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_crypto.h9
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v1.h92
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v3.h84
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_ver.h32
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cipher_header.h37
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cipherfmt_core.h14
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_ctrl.h34
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_cust_struct.h55
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_dev.h15
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_dev_util.h13
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_error.h229
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_fsutil_inter.h9
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_hdr.h31
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_ioctl.h50
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_key.h39
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_key_util.h10
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_log.h22
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd.h38
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd_util.h55
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_nvram.h23
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_osal_light.h16
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_rom_info.h81
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_secroimg.h198
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_extension.h152
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_header.h130
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_core.h18
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_def.h7
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_util.h21
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v2.h18
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v3.h19
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v4.h19
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_typedef.h51
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_usbdl.h18
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_usif.h6
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_usif_util.h12
-rw-r--r--drivers/misc/mediatek/masp/asf/asf_inc/sec_wrapper.h12
-rw-r--r--drivers/misc/mediatek/masp/asf/auth/sec_wrapper.c24
-rw-r--r--drivers/misc/mediatek/masp/asf/core/alg_aes_export.c173
-rw-r--r--drivers/misc/mediatek/masp/asf/core/alg_aes_legacy.c535
-rw-r--r--drivers/misc/mediatek/masp/asf/core/alg_aes_so.c767
-rw-r--r--drivers/misc/mediatek/masp/asf/core/alg_sha1.c276
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_aes.c192
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_boot_core.c315
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_boot_lib.c130
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_ccci.c114
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_cfg_crypto.c29
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_cfg_ver.c328
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_cipherfmt_core.c296
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_dev.c968
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_dev_util.c60
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_fsutil_inter.c92
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_hdr.c295
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_key_util.c23
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_mod_core.c469
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_mtd.c106
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_mtd_util.c151
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_ops.c46
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_secro.c442
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_signfmt_core.c673
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_signfmt_util.c84
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_signfmt_v2.c282
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_signfmt_v3.c852
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_signfmt_v4.c877
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_usbdl.c50
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_usif.c114
-rw-r--r--drivers/misc/mediatek/masp/asf/core/sec_usif_util.c176
-rw-r--r--drivers/misc/mediatek/masp/asf/crypto/bgn_core.c264
-rw-r--r--drivers/misc/mediatek/masp/asf/crypto/bgn_io.c203
-rw-r--r--drivers/misc/mediatek/masp/asf/crypto/bgn_util.c1004
-rw-r--r--drivers/misc/mediatek/masp/asf/crypto/rsa_core.c326
-rw-r--r--drivers/misc/mediatek/masp/asf/crypto/rsa_lib.c249
-rw-r--r--drivers/misc/mediatek/masp/asf/crypto/rsa_util.c87
-rw-r--r--drivers/misc/mediatek/masp/asfv2/asf_export_inc/sec_osal.h33
-rw-r--r--drivers/misc/mediatek/masp/asfv2/asf_inc/sec_ccci.h2
-rw-r--r--drivers/misc/mediatek/masp/asfv2/core/sec_legacy.c18
-rw-r--r--drivers/misc/mediatek/masp/asfv2/core/sec_osal.c194
94 files changed, 0 insertions, 13613 deletions
diff --git a/drivers/misc/mediatek/masp/asf/Makefile.core b/drivers/misc/mediatek/masp/asf/Makefile.core
deleted file mode 100755
index 600c23484..000000000
--- a/drivers/misc/mediatek/masp/asf/Makefile.core
+++ /dev/null
@@ -1,35 +0,0 @@
-#######################################
-# Sepcify source files
-#######################################
-core_obj += asf/core/alg_aes_export.o
-core_obj += asf/core/alg_aes_legacy.o
-core_obj += asf/core/alg_aes_so.o
-core_obj += asf/core/alg_sha1.o
-core_obj += asf/core/sec_aes.o
-core_obj += asf/core/sec_hdr.o
-core_obj += asf/core/sec_dev_util.o
-core_obj += asf/core/sec_mtd_util.o
-core_obj += asf/core/sec_usif_util.o
-core_obj += asf/core/sec_cfg_crypto.o
-core_obj += asf/core/sec_cfg_ver.o
-core_obj += asf/core/sec_signfmt_core.o
-core_obj += asf/core/sec_signfmt_util.o
-core_obj += asf/core/sec_signfmt_v2.o
-core_obj += asf/core/sec_signfmt_v3.o
-core_obj += asf/core/sec_signfmt_v4.o
-core_obj += asf/core/sec_cipherfmt_core.o
-core_obj += asf/core/sec_key_util.o
-core_obj += asf/core/sec_ops.o
-core_obj += asf/core/sec_boot_lib.o
-core_obj += asf/core/sec_secro.o
-core_obj += asf/core/sec_usbdl.o
-core_obj += asf/core/sec_dev.o
-core_obj += asf/core/sec_ccci.o
-core_obj += asf/core/sec_mtd.o
-core_obj += asf/core/sec_usif.o
-core_obj += asf/core/sec_fsutil_inter.o
-core_obj += asf/core/sec_boot_core.o
-core_obj += asf/core/sec_mod_core.o
-
-# HEADER FILE
-EXTRA_CFLAGS += -I$(src)/asf/asf_inc
diff --git a/drivers/misc/mediatek/masp/asf/Makefile.crypto b/drivers/misc/mediatek/masp/asf/Makefile.crypto
deleted file mode 100755
index f0cdf2f5e..000000000
--- a/drivers/misc/mediatek/masp/asf/Makefile.crypto
+++ /dev/null
@@ -1,12 +0,0 @@
-#######################################
-# Sepcify source files
-#######################################
-crypto_obj += asf/crypto/rsa_lib.o
-crypto_obj += asf/crypto/rsa_core.o
-crypto_obj += asf/crypto/rsa_util.o
-crypto_obj += asf/crypto/bgn_core.o
-crypto_obj += asf/crypto/bgn_io.o
-crypto_obj += asf/crypto/bgn_util.o
-
-# HEADER FILE
-EXTRA_CFLAGS += -I$(src)/asf/asf_inc
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/aes_legacy.h b/drivers/misc/mediatek/masp/asf/asf_inc/aes_legacy.h
deleted file mode 100644
index 995386406..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/aes_legacy.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef H_AES_LEGACY
-#define H_AES_LEGACY
-
-/**************************************************************************
- * AES
- **************************************************************************/
-#define CUSTOM_AES_256 "CUSTOM_AES_256"
-#define AES_KEY_SIZE (32) // bytes
-#define CIPHER_BLOCK_SIZE (16)
-
-/**************************************************************************
- * EXPORT FUNCTION
- **************************************************************************/
-extern int aes_legacy_enc(unsigned char* in_buf, unsigned int in_len, unsigned char* out_buf, unsigned int out_len);
-extern int aes_legacy_dec(unsigned char* in_buf, unsigned int in_len, unsigned char* out_buf, unsigned int out_len);
-extern int aes_legacy_init_key(unsigned char* key_buf, unsigned int key_len);
-extern int aes_legacy_init_vector(void);
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/aes_so.h b/drivers/misc/mediatek/masp/asf/asf_inc/aes_so.h
deleted file mode 100644
index 559fd66f1..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/aes_so.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef H_AES_BROM
-#define H_AES_BROM
-
-#define AES_ENCRYPT 1
-#define AES_DECRYPT 0
-
-typedef struct
-{
- int nr;
- unsigned long *rk;
- unsigned long buf[68];
-} a_ctx;
-
-/**************************************************************************
- * EXPORT FUNCTION
- **************************************************************************/
-extern int aes_so_enc(unsigned char* in_buf, unsigned int in_len, unsigned char* out_buf, unsigned int out_len);
-extern int aes_so_dec(unsigned char* in_buf, unsigned int in_len, unsigned char* out_buf, unsigned int out_len);
-extern int aes_so_init_key(unsigned char* key_buf, unsigned int key_len);
-extern int aes_so_init_vector(void);
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/alg_sha1.h b/drivers/misc/mediatek/masp/asf/asf_inc/alg_sha1.h
deleted file mode 100644
index 053998f9b..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/alg_sha1.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _SHA1_H
-#define _SHA1_H
-
-#define SHA1_LEN 20
-
-typedef struct
-{
- unsigned long to[2];
- unsigned long st[5];
- unsigned char buf[64];
-}
-sha1_ctx;
-
-typedef struct {
- unsigned int state[5];
- unsigned int count[2];
- unsigned char buffer[64];
-} SHA1_CTX;
-
-/**************************************************************************
- * EXPORT FUNCTIONS
- **************************************************************************/
-void sha1( const unsigned char *input, int ilen, unsigned char output[20] );
-
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/bgn_asm.h b/drivers/misc/mediatek/masp/asf/asf_inc/bgn_asm.h
deleted file mode 100644
index 9e9bc4145..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/bgn_asm.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _BN_ASM_H
-#define _BN_ASM_H
-
-#define ALU_INIT \
-{ \
- unsigned long s_0, s_1, b_0, b_1; \
- unsigned long r_0, r_1, r_x, r_y; \
- b_0 = ( b << biH ) >> biH; \
- b_1 = ( b >> biH );
-
-#define ALU_CORE \
- s_0 = ( *s << biH ) >> biH; \
- s_1 = ( *s >> biH ); s++; \
- r_x = s_0 * b_1; r_0 = s_0 * b_0; \
- r_y = s_1 * b_0; r_1 = s_1 * b_1; \
- r_1 += ( r_x >> biH ); \
- r_1 += ( r_y >> biH ); \
- r_x <<= biH; r_y <<= biH; \
- r_0 += r_x; r_1 += (r_0 < r_x); \
- r_0 += r_y; r_1 += (r_0 < r_y); \
- r_0 += c; r_1 += (r_0 < c); \
- r_0 += *d; r_1 += (r_0 < *d); \
- c = r_1; *(d++) = r_0;
-
-#define ALU_STOP \
-}
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/bgn_export.h b/drivers/misc/mediatek/masp/asf/asf_inc/bgn_export.h
deleted file mode 100644
index 95fbb8a10..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/bgn_export.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _BIGNUM_EXPORT_H
-#define _BIGNUM_EXPORT_H
-
-typedef struct
-{
- int s;
- int n;
- unsigned long *p;
-}
-bgn;
-
-
-/**************************************************************************
- * EXPORT FUNCTIONS
- **************************************************************************/
-int bgn_read_bin( bgn *X, const unsigned char *buf, int buflen );
-int bgn_write_bin( const bgn *X, unsigned char *buf, int buflen );
-int bgn_read_str( bgn *X, int radix, const char *s, int length );
-int bgn_exp_mod( bgn *X, const bgn *E, const bgn *N, bgn *_RR );
-
-
-/**************************************************************************
- * ERROR CODE
- **************************************************************************/
-#define E_BGN_FILE_IOEOR 0x0001
-#define E_BGN_BAD_INPUT_DATA 0x0002
-#define E_BGN_INVALID_CHARACTER 0x0003
-#define E_BGN_BUFFER_TOO_SMALL 0x0004
-#define E_BGN_NEGATIVE_VALUE 0x0005
-#define E_BGN_DIVISION_BY_ZERO 0x0006
-#define E_BGN_NOT_ACCEPTABLE 0x0007
-
-#endif /* bgn.h */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/bgn_internal.h b/drivers/misc/mediatek/masp/asf/asf_inc/bgn_internal.h
deleted file mode 100644
index 82905cb03..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/bgn_internal.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _BIGNUM_INTERNAL_H
-#define _BIGNUM_INTERNAL_H
-
-#include "bgn_export.h"
-
-/**************************************************************************
- * INTERNAL DEFINIITION
- **************************************************************************/
-#define ciL ((int) sizeof(unsigned long))
-#define biL (ciL << 3)
-#define biH (ciL << 2)
-
-#define B_T_L(i) (((i) + biL - 1) / biL)
-#define C_T_L(i) (((i) + ciL - 1) / ciL)
-
-/**************************************************************************
- * INTERNAL FUNCTIONS
- **************************************************************************/
-void bgn_init( bgn *P_X );
-void bgn_free( bgn *P_X );
-int bgn_grow( bgn *P_X, int nbl );
-int bgn_copy( bgn *P_X, const bgn *P_Y );
-void bgn_swap( bgn *P_X, bgn *P_Y );
-int bgn_lset( bgn *P_X, int z );
-int bgn_lsb( const bgn *P_X );
-int bgn_msb( const bgn *P_X );
-int bgn_size( const bgn *P_X );
-int bgn_shift_l( bgn *P_X, int count );
-int bgn_shift_r( bgn *P_X, int count );
-int bgn_cmp_abs( const bgn *P_X, const bgn *P_Y );
-int bgn_cmp_num( const bgn *P_X, const bgn *P_Y );
-int bgn_cmp_int( const bgn *P_X, int z );
-int bgn_add_abs( bgn *P_X, const bgn *P_A, const bgn *P_B );
-int bgn_sub_abs( bgn *P_X, const bgn *P_A, const bgn *P_B );
-int bgn_add_bgn( bgn *P_X, const bgn *P_A, const bgn *P_B );
-int bgn_sub_bgn( bgn *P_X, const bgn *P_A, const bgn *P_B );
-int bgn_add_int( bgn *P_X, const bgn *P_A, int b );
-int bgn_sub_int( bgn *P_X, const bgn *P_A, int b );
-int bgn_mul_bgn( bgn *P_X, const bgn *P_A, const bgn *B );
-int bgn_mul_int( bgn *P_X, const bgn *P_A, unsigned long b );
-int bgn_div_bgn( bgn *P_Q, bgn *P_R, const bgn *P_A, const bgn *P_B );
-int bgn_div_int( bgn *P_Q, bgn *P_R, const bgn *P_A, int b );
-int bgn_mod_bgn( bgn *P_R, const bgn *P_A, const bgn *P_B );
-int bgn_mod_int( unsigned long *r, const bgn *P_A, int b );
-int bgn_exp_mod( bgn *P_X, const bgn *P_E, const bgn *P_N, bgn *_RR );
-int bgn_inv_mod( bgn *P_X, const bgn *P_A, const bgn *P_N );
-int bgn_is_prime( bgn *P_X, int (*f_rng)(void *), void *p_rng );
-
-void montg_init( unsigned long *mm, const bgn *P_N );
-void montg_mul( bgn *P_A, const bgn *P_B, const bgn *P_N, unsigned long mm, const bgn *P_T );
-void montg_red( bgn *P_A, const bgn *P_N, unsigned long mm, const bgn *P_T );
-void bgn_sub_hlp( int n, unsigned long *s, unsigned long *d );
-void bgn_mul_hlp( int i, unsigned long *s, unsigned long *d, unsigned long b );
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/masp_version.h b/drivers/misc/mediatek/masp/asf/asf_inc/masp_version.h
deleted file mode 100644
index 6227553fc..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/masp_version.h
+++ /dev/null
@@ -1,4 +0,0 @@
-//building time information
-#define BUILD_TIME "CST 2013"
-#define BUILD_BRANCH "(ALPS.JB2)"
-#define CCCI_VERSION 1
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/rsa_def.h b/drivers/misc/mediatek/masp/asf/asf_inc/rsa_def.h
deleted file mode 100644
index e55885e69..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/rsa_def.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef _RSA_H
-#define _RSA_H
-
-#include "bgn_export.h"
-#include "sec_cust_struct.h"
-
-/**************************************************************************
- * INCLUDING
- **************************************************************************/
-#include "alg_sha1.h"
-
-/**************************************************************************
- * MODE SELECTION
- **************************************************************************/
-#define SIG_RSA_RAW 0
-#define RSA_SIGN 1
-
-/**************************************************************************
- * CORE DATA STRUCTURE
- **************************************************************************/
-typedef struct
-{
- int len;
-
- int pad;
- int h_id;
- int (*f_rng)(void *);
- void *p_rng;
-
- /* keys { */
- bgn N;
- bgn E;
- bgn D;
-
- bgn RN;
- bgn RP;
- bgn RQ;
- /* keys } */
-}
-rsa_ctx;
-
-/**************************************************************************
- * EXPORT FUNCTIONS
- **************************************************************************/
-int rsa_sign( rsa_ctx *ctx, int h_len, const unsigned char *hash, unsigned char *sig );
-int rsa_verify( rsa_ctx *ctx, int h_len, const unsigned char *hash, unsigned char *sig );
-
-/**************************************************************************
- * EXPORT VARIABLES
- **************************************************************************/
-extern rsa_ctx rsa;
-
-
-/**************************************************************************
- * ERROR CODE
- **************************************************************************/
-#define E_RSA_BAD_INPUT_DATA 0x0001
-#define E_RSA_INVALID_PADDING 0x0002
-#define E_RSA_KEY_GEN_FAILED 0x0003
-#define E_RSA_KEY_CHECK_FAILED 0x0004
-#define E_RSA_PUBLIC_FAILED 0x0005
-#define E_RSA_PRIVATE_FAILED 0x0006
-#define E_RSA_VERIFY_FAILED 0x0007
-#define E_RSA_OUTPUT_TOO_LARGE 0x0008
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_aes.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_aes.h
deleted file mode 100644
index 50a9df4f8..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_aes.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _CIPHERIMG_H
-#define _CIPHERIMG_H
-
-/**************************************************************************
- * AES
- **************************************************************************/
-typedef enum
-{
- AES_VER_LEGACY = 0,
- AES_VER_SO
-} AES_VER;
-
-/**************************************************************************
- * EXPORTED FUNCTIONS
- **************************************************************************/
-extern int sec_aes_init(void);
-extern int lib_aes_enc(unsigned char* input_buf, unsigned int input_len, unsigned char* output_buf, unsigned int output_len);
-extern int lib_aes_dec(unsigned char* input_buf, unsigned int input_len, unsigned char* output_buf, unsigned int output_len);
-extern int lib_aes_init_key(unsigned char* key_buf, unsigned int key_len, AES_VER ver);
-extern int lib_aes_init_vector(AES_VER ver);
-
-
-#endif /*_CIPHERIMG_H*/
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_auth.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_auth.h
deleted file mode 100644
index 96a0789e9..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_auth.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef SEC_AUTH_H
-#define SEC_AUTH_H
-
-/**************************************************************************
- * AUTH DATA STRUCTURE
-**************************************************************************/
-#define SIGNATURE_SIZE (128) // 128 bytes
-#define RSA_KEY_SIZE (128)
-
-typedef struct
-{
- unsigned char content[SIGNATURE_SIZE];
-
-} _signature;
-
-/**************************************************************************
-* EXPORT FUNCTION
-**************************************************************************/
-extern int lib_init_key (unsigned char *nKey, unsigned int nKey_len, unsigned char *eKey, unsigned int eKey_len);
-extern int lib_verify (unsigned char* data_buf, unsigned int data_len, unsigned char* sig_buf, unsigned int sig_len);
-extern int sec_auth_test (void);
-
-#endif /* SEC_AUTH_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot.h
deleted file mode 100644
index 5adc00737..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef SEC_BOOT_H
-#define SEC_BOOT_H
-
-/**************************************************************************
- * [S-BOOT]
- **************************************************************************/
-
-/* S-BOOT Attribute */
-#define ATTR_SBOOT_DISABLE 0x00
-#define ATTR_SBOOT_ENABLE 0x11
-#define ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP 0x22
-
-/**************************************************************************
- * [SECURE BOOT CHECK]
- **************************************************************************/
-
-/* Note : this structure record all the partitions
- which should be verified by secure boot check */
-#define AND_SEC_BOOT_CHECK_PART_SIZE (90)
-typedef struct
-{
- unsigned char name[9][10];
-
-} AND_SECBOOT_CHECK_PART_T;
-
-/* Note : partition name between preloader/DA and kernel mtd table may be different
- in order to reduce maintainence effort, secure boot update will apply
- following transfation table to correct mtd partition name */
-#define MTD_SECCFG "seccnfg"
-#define MTD_UBOOT "uboot"
-#define MTD_LOGO "logo"
-#define MTD_BOOTIMG "boot"
-#define MTD_USER "userdata"
-#define MTD_ANDSYSIMG "system"
-#define MTD_RECOVERY "recovery"
-#define MTD_SECRO "secstatic"
-
-#define USIF_SECCFG "seccfg"
-#define USIF_UBOOT "uboot"
-#define USIF_LOGO "logo"
-#define USIF_BOOTIMG "bootimg"
-#define USIF_USER "userdata"
-#define USIF_ANDSYSIMG "android"
-#define USIF_RECOVERY "recovery"
-#define USIF_SECRO "sec_ro"
-
-#define PL_SECCFG "SECCFG"
-#define PL_UBOOT "UBOOT"
-#define PL_LOGO "LOGO"
-#define PL_BOOTIMG "BOOTIMG"
-#define PL_USER "USRDATA"
-#define PL_ANDSYSIMG "ANDROID"
-#define PL_RECOVERY "RECOVERY"
-#define PL_SECRO "SEC_RO"
-
-#define GPT_SECRO "secro"
-#define GPT_PRELOADER "preloader"
-
-/**************************************************************************
- * EXPORT FUNCTION
- **************************************************************************/
-extern int masp_boot_init (void);
-extern int sec_boot_enabled (void);
-extern int sec_modem_auth_enabled (void);
-extern int sec_schip_enabled (void);
-
-#endif /* SEC_BOOT_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_core.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_core.h
deleted file mode 100644
index 1f19a6ff4..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_core.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef SEC_BOOT_CORE_H
-#define SEC_BOOT_CORE_H
-
-/**************************************************************************
- * EXPORT FUNCTION
- **************************************************************************/
-extern int masp_boot_init (void);
-
-/* get platform configuration */
-extern int sec_boot_enabled (void);
-extern int sec_modem_auth_enabled (void);
-extern int sec_sds_enabled (void);
-extern int sec_schip_enabled (void);
-
-/* sec boot check */
-extern bool sec_boot_check_part_enabled (char* part_name);
-
-/* HACC HW init */
-extern unsigned int sec_boot_hacc_init (void);
-
-#endif /* SEC_BOOT_CORE_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_lib.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_lib.h
deleted file mode 100644
index ec89dda56..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_boot_lib.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef SEC_BOOT_LIB_H
-#define SEC_BOOT_LIB_H
-
-/**************************************************************************
- * INCLUDE LINUX HEADER
- **************************************************************************/
-#include "sec_osal_light.h"
-
-/**************************************************************************
- * INCLUDE MTK HEADERS
- **************************************************************************/
-#include "masp_version.h"
-#include "sec_aes.h"
-#include "aes_legacy.h"
-#include "sec_sign_header.h"
-#include "sec_cfg.h"
-#include "sec_typedef.h"
-#include "sec_rom_info.h"
-#include "sec_secroimg.h"
-#include "sec_mtd.h"
-#include "sec_usbdl.h"
-#include "sec_mtd_util.h"
-#include "sec_boot.h"
-#include "sec_fsutil_inter.h"
-#include "sec_log.h"
-#include "sec_wrapper.h"
-#include "sec_boot_core.h"
-#include "sec_hdr.h"
-#include "sec_cfg_ver.h"
-#include "sec_usif.h"
-#include "sec_usif_util.h"
-#include "sec_dev.h"
-#include "sec_dev_util.h"
-#include "sec_sign_extension.h"
-#include "sec_signfmt_util.h"
-#include "sec_signfmt_v2.h"
-#include "sec_signfmt_v3.h"
-#include "sec_signfmt_v4.h"
-#include "sec_signfmt_core.h"
-#include "sec_cipherfmt_core.h"
-#include "sec_cipher_header.h"
-#include "sec_error.h"
-#include "sec_nvram.h"
-
-/******************************************************************************
- * INTERNAL CONFIGURATION
- ******************************************************************************/
-typedef struct
-{
- bool bKeyInitDis;
- bool bUsifEn;
- char bMsg;
-} SECURE_INFO;
-
-/**************************************************************************
- * EXTERNAL VARIABLE
- **************************************************************************/
-extern AND_ROMINFO_T rom_info;
-extern SECURE_INFO sec_info;
-extern SECCFG_U seccfg;
-extern AND_SECROIMG_T secroimg;
-
-/**************************************************************************
- * sec boot util function
- **************************************************************************/
-extern char* asf_get_build_info(void);
-
-#endif /* SEC_BOOT_LIB_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_ccci.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_ccci.h
deleted file mode 100644
index f7fb89df4..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_ccci.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef SEC_CCCI_LIB_H
-#define SEC_CCCI_LIB_H
-
-int masp_ccci_signfmt_verify_file(char *file_path, unsigned int *data_offset, unsigned int *data_sec_len);
-int masp_ccci_version_info(void);
-int sec_ccci_file_open(char *file_path);
-int sec_ccci_file_close(int fp_id);
-int masp_ccci_is_cipherfmt(int fp_id, unsigned int start_off, unsigned int *img_len);
-int masp_ccci_decrypt_cipherfmt(int fp_id, unsigned int start_off, char *buf, unsigned int buf_len, unsigned int *data_offset);
-
-#endif /* SEC_CCCI_LIB_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg.h
deleted file mode 100644
index 12f74a1ba..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef SEC_CFG_H
-#define SEC_CFG_H
-
-/* EXPORT TO USERS */
-#include "sec_cfg_v1.h"
-#include "sec_cfg_v3.h"
-#include "sec_cfg_common.h"
-#include "sec_cfg_crypto.h"
-
-/**************************************************************************
- * SECCFG VERSION
- **************************************************************************/
-typedef union
-{
- SECURE_CFG_V1 v1;
- SECURE_CFG_V3 v3;
-
-} SECCFG_U;
-
-typedef union
-{
- SECURE_IMG_INFO_V1 v1;
- SECURE_IMG_INFO_V3 v3;
-
-} SEC_IMG_U;
-
-
-/**************************************************************************
- * EXPORT FUNCTIONS
- **************************************************************************/
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_common.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_common.h
deleted file mode 100644
index 3897d0e5d..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_common.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef SEC_CFG_COMMON_H
-#define SEC_CFG_COMMON_H
-
-/* ========================================================================= */
-/* ROM TYPE */
-/* ========================================================================= */
-typedef enum {
- NORMAL_ROM = 0x01,
- YAFFS_IMG = 0x08,
-} ROM_TYPE;
-
-/* ========================================================================= */
-/* SECURE IMAGE HEADER */
-/* ========================================================================= */
-/* one image comes with one secure image information. */
-#define SEC_IMG_MAGIC_NUM (0x49494949) /* IIII */
-
-typedef enum
-{
- ATTR_SEC_IMG_UPDATE = 0x10, /* only used in FlashTool */
- ATTR_SEC_IMG_COMPLETE = 0x43434343, /* CCCC */
- ATTR_SEC_IMG_INCOMPLETE = 0x49494949, /* IIII */
- ATTR_SEC_IMG_FORCE_UPDATE = 0x46464646 /* FFFF */
-
-} SEC_IMG_ATTR;
-
-/* ========================================================================= */
-/* SECURE CFG STORAGE CONFIG */
-/* ========================================================================= */
-/* buffer allocated in DA */
-#define SEC_BUF_LEN (0x3000)
-
-/* ========================================================================= */
-/* SECURE CFG VERSION */
-/* ========================================================================= */
-#define SECCFG_SUPPORT_VERSION (0x1)
-
-/* ========================================================================= */
-/* SECURE CFG FORMAT */
-/* ========================================================================= */
-#define SEC_CFG_MAGIC_NUM (0x4D4D4D4D) /* MMMM */
-#define SEC_CFG_BEGIN "AND_SECCFG_v"
-#define SEC_CFG_BEGIN_LEN (12)
-
-/* in order to avoid power loss potential issue */
-/* before sec cfg start to update, status will be set as in-complete. */
-typedef enum
-{
- SEC_CFG_COMPLETE_NUM = 0x43434343, /* CCCC */
- SEC_CFG_INCOMPLETE_NUM = 0x49494949 /* IIII */
-
-} SECCFG_STATUS;
-
-/* attributes which can disable secure boot (internal use only) */
-typedef enum
-{
- ATTR_DEFAULT = 0x33333333, /* 3333 */
- ATTR_DISABLE_IMG_CHECK = 0x44444444 /* DDDD */
-
-} SECCFG_ATTR;
-
-/* specify image was upgraded by SIU or flash tool */
-typedef enum
-{
- UBOOT_UPDATED_BY_SIU = 0x0001,
- BOOT_UPDATED_BY_SIU = 0x0010,
- RECOVERY_UPDATED_BY_SIU = 0x0100,
- SYSTEM_UPDATED_BY_SIU = 0x1000
-
-} SIU_STATUS;
-
-/* end pattern for debugging */
-#define SEC_CFG_END_PATTERN (0x45454545) /* EEEE */
-
-#endif // SEC_CFG_COMMON_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_crypto.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_crypto.h
deleted file mode 100644
index da8697658..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_crypto.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef SECCFG_CRYPTO_H
-#define SECCFG_CRYPTO_H
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-extern unsigned int get_seccfg_cipher_len (void);
-
-#endif /* SECCFG_CRYPTO_H */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v1.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v1.h
deleted file mode 100644
index bdab0f7b9..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v1.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef SEC_CFG_V1_H
-#define SEC_CFG_V1_H
-
-/**************************************************************************
- * INCLUDE SEC CFG COMMON
- **************************************************************************/
-#include "sec_cfg_common.h"
-
-/**************************************************************************
- * INCLUDE SIGN HEADER FORMAT
- **************************************************************************/
-#include "sec_sign_header.h"
-
-/**************************************************************************
- * SECURE DOWNLOAD LOCK TABLE
- **************************************************************************/
-#define MAX_IMG_LOCK_COUNT (20)
-#define IMAGE_LOCK_MAGIC (0x4C4C4C4C) /* LLLL */
-
-typedef struct
-{
- unsigned int magic_number;
- unsigned char name[32]; /* partition name */
- unsigned char unlocked;
-
-} IMAGE_DL_LOCK_INFO;
-
-typedef struct
-{
- unsigned int magic_number;
- unsigned char lock_not_all;
- IMAGE_DL_LOCK_INFO lock_info[MAX_IMG_LOCK_COUNT];
-
-} SECURE_DL_LOCK_TABLE;
-
-/**************************************************************************
- * SECURE IMAGE HEADER
- **************************************************************************/
-
-typedef struct
-{
- unsigned int magic_number;
- unsigned char name[16]; /* index for identification */
- unsigned int real_offset; /* download agent will update the real offset */
- ROM_TYPE image_type; /* yaffs2 format or raw binary */
- SEC_IMG_ATTR attr; /* image attributes */
- SEC_IMG_HEADER_U header;
- unsigned char signature_hash [HASH_SIG_LEN];
-
-} SECURE_IMG_INFO_V1;
-
-/**************************************************************************
- * SECURE CFG FORMAT
- **************************************************************************/
-#define SECURE_IMAGE_COUNT (12)
-#define SEC_CFG_RESERVED (4)
-
-/* ================================= */
-/* SECCFG FORMAT */
-/* ================================= */
-typedef struct
-{
- unsigned char id[16];
- unsigned int magic_number;
- unsigned int lib_ver;
-
- unsigned int sec_cfg_size;
-
- unsigned char sw_sec_lock_try;
- unsigned char sw_sec_lock_done;
-
- unsigned short page_size;
- unsigned int page_count;
-
- /* ================== */
- /* encrypted region { */
- /* ================== */
- SECURE_IMG_INFO_V1 image_info [SECURE_IMAGE_COUNT];
- SIU_STATUS siu_status;
- unsigned char reserve [SEC_CFG_RESERVED];
- SECCFG_STATUS status;
- SECCFG_ATTR attr;
- /* ================== */
- /* encrypted region } */
- /* ================== */
-
- SECURE_DL_LOCK_TABLE lock_table;
- unsigned int end_pattern;
-
-} SECURE_CFG_V1;
-
-#endif // SEC_CFG_V1_H \ No newline at end of file
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v3.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v3.h
deleted file mode 100644
index 0f15a88fe..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_v3.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef SEC_CFG_V3_H
-#define SEC_CFG_V3_H
-
-/**************************************************************************
- * INCLUDE SEC CFG COMMON
- **************************************************************************/
-#include "sec_cfg_common.h"
-
-/**************************************************************************
- * INCLUDE SIGN HEADER FORMAT
- **************************************************************************/
-#include "sec_sign_header.h"
-
-/**************************************************************************
- * SECCFG EXTENSION REGION
- **************************************************************************/
-#define EXT_REGION_BUF_SIZE (4096) /* used to store extension headers */
-
-typedef struct
-{
- unsigned int content_len; /* total used data length */
- unsigned char buf [EXT_REGION_BUF_SIZE];
-
-} SECCFG_EXT_REGION;
-
-/**************************************************************************
- * SECURE IMAGE HEADER
- **************************************************************************/
-
-typedef struct
-{
- unsigned int magic_number;
- unsigned char name [16]; /* index for identification */
- unsigned int real_offset; /* download agent will update the real offset */
- ROM_TYPE image_type; /* yaffs2 format or raw binary */
- SEC_IMG_ATTR image_attr; /* image attributes */
- SEC_IMG_HEADER_U header; /* image sign header */
- unsigned int ext_offset; /* offset of extension header */
- unsigned int ext_len; /* length of extension header */
-
-} SECURE_IMG_INFO_V3;
-
-/**************************************************************************
- * SECURE CFG FORMAT
- **************************************************************************/
-#define SECURE_IMAGE_COUNT_V3 (20)
-
-/* ================================= */
-/* SECCFG FORMAT */
-/* ================================= */
-typedef struct
-{
- unsigned char id[16];
- unsigned int magic_number;
-
- unsigned int seccfg_ver;
- unsigned int seccfg_size;
-
- unsigned int seccfg_enc_offset;
- unsigned int seccfg_enc_len;
-
- unsigned char sw_sec_lock_try;
- unsigned char sw_sec_lock_done;
-
- unsigned short page_size;
- unsigned int page_count;
-
- /* ================== */
- /* encrypted region { */
- /* ================== */
- SECURE_IMG_INFO_V3 image_info [SECURE_IMAGE_COUNT_V3];
- SIU_STATUS siu_status;
- SECCFG_STATUS seccfg_status;
- SECCFG_ATTR seccfg_attr;
- SECCFG_EXT_REGION seccfg_ext;
- /* ================== */
- /* encrypted region } */
- /* ================== */
-
- unsigned int end_pattern;
-
-} SECURE_CFG_V3;
-
-#endif // SEC_CFG_V3_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_ver.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_ver.h
deleted file mode 100644
index 19aa69007..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cfg_ver.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef SEC_CFG_VER_H
-#define SEC_CFG_VER_H
-
-#include "sec_cfg.h"
-#include "sec_cfg_common.h"
-#include "sec_cfg_v1.h"
-#include "sec_cfg_v3.h"
-
-typedef enum
-{
- SECCFG_V1 = 1,
- SECCFG_V1_2 = 2,
- SECCFG_V3 = 3,
- SECCFG_UNSET = 4
-
-} SECCFG_VER;
-
-/**************************************************************************
- * EXPORT FUNCTIONS
- **************************************************************************/
-extern void set_seccfg_ver (SECCFG_VER val);
-extern SECCFG_VER get_seccfg_ver (void);
-extern SECCFG_STATUS get_seccfg_status (SECCFG_U *p_seccfg);
-extern void set_seccfg_status (SECCFG_U *p_seccfg, SECCFG_STATUS val);
-extern unsigned int get_seccfg_siu (SECCFG_U *p_seccfg);
-extern void set_seccfg_siu (SECCFG_U *p_seccfg, unsigned int val);
-extern unsigned int get_seccfg_img_cnt (void);
-extern int seccfg_ver_detect (void);
-extern int seccfg_ver_correct (void);
-extern int seccfg_ver_verify (void);
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cipher_header.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cipher_header.h
deleted file mode 100644
index a91defaea..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cipher_header.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _CIPHERHEADER_H
-#define _CIPHERHEADER_H
-
-/**************************************************************************
- * CIPHER HEADER FORMAT
- **************************************************************************/
-
-#define CUSTOM_NAME "CUSTOM_NAME"
-#define IMAGE_VERSION "IMAGE_VERSION"
-#define CIPHER_IMG_MAGIC (0x63636363)
-#define CIPHER_IMG_HEADER_SIZE (128)
-
-typedef struct _SEC_CIPHER_IMG_HEADER
-{
- unsigned int magic_number;
-
- unsigned char cust_name [32];
- unsigned int image_version;
- unsigned int image_length;
- unsigned int image_offset;
-
- unsigned int cipher_offset;
- unsigned int cipher_length;
-
- /*
- * v0 : legacy
- * v1 : standard operations
- */
- unsigned int aes_version;
- unsigned char dummy[68];
-
-}CIPHER_HEADER;
-
-#endif /*_CIPHERHEADER_H*/
-
-
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cipherfmt_core.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cipherfmt_core.h
deleted file mode 100644
index 1a41e774f..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cipherfmt_core.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _SEC_CIPHER_FORMAT_CORE_H
-#define _SEC_CIPHER_FORMAT_CORE_H
-
-#include "sec_signfmt_def.h"
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-int sec_cipherfmt_check_cipher(ASF_FILE fp, unsigned int start_off, unsigned int *img_len);
-int sec_cipherfmt_decrypted(ASF_FILE fp, unsigned int start_off, char *buf, unsigned int buf_len, unsigned int *data_offset);
-
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_ctrl.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_ctrl.h
deleted file mode 100644
index 1b922ea2c..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_ctrl.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef SECLIB_CTRL_H
-#define SECLIB_CTRL_H
-
-/**************************************************************************
- * [SEC-CTRL ID]
- **************************************************************************/
-#define ROM_INFO_SEC_CTRL_ID "AND_SECCTRL_v"
-#define ROM_INFO_SEC_CTRL_VER 0x1
-
-/**************************************************************************
- * [SEC-CTRL FORMAT]
- **************************************************************************/
-#define AND_SEC_CTRL_SIZE (52)
-
-typedef struct
-{
- unsigned char m_id[16];
- unsigned int m_sec_cfg_ver;
- unsigned int m_sec_usb_dl;
- unsigned int m_sec_boot;
- unsigned int m_sec_modem_auth;
- unsigned int m_sec_sds_en;
- unsigned char m_seccfg_ac_en;
- unsigned char m_sec_aes_legacy;
- unsigned char m_secro_ac_en;
- unsigned char m_sml_aes_key_ac_en;
- unsigned int reserve[3];
-
-} AND_SECCTRL_T;
-
-extern void sec_ctrl_init (void);
-
-#endif /* SECLIB_CTRL_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cust_struct.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_cust_struct.h
deleted file mode 100644
index 9eaa83a73..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_cust_struct.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _CUST_SEC_H
-#define _CUST_SEC_H
-
-/**************************************************************************
- * RSA PKCS01 CONTROL
- **************************************************************************/
-#define RSA_KEY_LEN_2048 (0)
-#define RSA_KEY_LEN_1024 (1)
-
-/**************************************************************************
- * RSA PKCS01 CHECKING
- **************************************************************************/
-#if RSA_KEY_LEN_2048
-#if RSA_KEY_LEN_1024
-#error "RSA_KEY_LEN_1024 should be disabled"
-#endif
-#endif
-
-#if RSA_KEY_LEN_1024
-#if RSA_KEY_LEN_2048
-#error "RSA_KEY_LEN_2048 should be disabled"
-#endif
-#endif
-
-/**************************************************************************
- * RSA PKCS01 CONFIGURATION
- **************************************************************************/
-#define RSA_KEY_MAX_LEN (128) // bytes
-#define RSA_E_KEY_LEN (5) // bytes
-
-#if RSA_KEY_LEN_2048
-#define RSA_KEY_LEN (256) // bytes
-#define HASH_LEN (32) // bytes
-
-#elif RSA_KEY_LEN_1024
-#define RSA_KEY_LEN (128) // bytes
-#define HASH_LEN (20) // bytes
-
-#else
-#error "RSA_KEY_LEN is not defined"
-
-#endif
-
-/**************************************************************************
- * CUSTOMER INTERFACE
- **************************************************************************/
-typedef struct _CUST_SEC_INTER
-{
- /* key to sign image patch */
- unsigned char key_rsa_n[RSA_KEY_MAX_LEN*2]; // string. number base = 16
- unsigned char key_rsa_d[RSA_KEY_MAX_LEN*2]; // string. number base = 16
- unsigned char key_rsa_e[RSA_E_KEY_LEN]; // string. number base = 16
-} CUST_SEC_INTER;
-
-#endif /*_CUST_SEC_H*/
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_dev.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_dev.h
deleted file mode 100644
index 3f953b021..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_dev.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef DEV_H
-#define DEV_H
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-extern void sec_dev_dump_part(void);
-extern void sec_dev_find_parts(void);
-extern int sec_dev_read_rom_info(void);
-extern int sec_dev_read_secroimg(void);
-extern int sec_dev_read_secroimg_v5(unsigned int index);
-extern unsigned int sec_dev_read_image(char* part_name, char* buf, u64 off, unsigned int sz, unsigned int image_type);
-
-
-#endif // DEV_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_dev_util.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_dev_util.h
deleted file mode 100644
index 96426f743..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_dev_util.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef DEV_UTILS_H
-#define DEV_UTILS_H
-
-/**************************************************************************
- * EXTERNAL FUNCTIONS
- *************************************************************************/
-extern char* part2pl (char* part_name);
-extern char* pl2part (char* part_name);
-extern void sec_dev_part_name (unsigned int part_num, char* part_name);
-extern char* get_android_name(void);
-extern char* get_secro_name(void);
-
-#endif // DEV_UTILS_INTER_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_error.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_error.h
deleted file mode 100644
index e9161f326..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_error.h
+++ /dev/null
@@ -1,229 +0,0 @@
-#ifndef SEC_ERROR_H
-#define SEC_ERROR_H
-
-/**************************************************************************
- * COMPILE ASSERT
- **************************************************************************/
-#define COMPILE_ASSERT(condition) ((void)sizeof(char[1 - 2*!!!(condition)]))
-
-#define SEC_OK 0x0000
-
-/* IMAGE CIPHER */
-#define ERR_IMAGE_CIPHER_KEY_ERR 0x1000
-#define ERR_IMAGE_CIPHER_IMG_NOT_FOUND 0x1001
-#define ERR_IMAGE_CIPHER_READ_FAIL 0x1002
-#define ERR_IMAGE_CIPHER_WRONG_OPERATION 0x1003
-#define ERR_IMAGE_CIPHER_DEC_TEST_ERROR 0x1004
-#define ERR_IMAGE_CIPHER_ENC_TEST_ERROR 0x1005
-#define ERR_IMAGE_CIPHER_HEADER_NOT_FOUND 0x1006
-#define ERR_IMAGE_CIPHER_DEC_Fail 0x1007
-
-/* SW AES */
-#define ERR_AES_KEY_SIZE_ERR 0x2000
-#define ERR_AES_ALLOCATE_CTX_ERR 0x2001
-#define ERR_AES_ILEN_SHOULD_EQUAL_OLEN 0x2002
-#define ERR_AES_DATA_NOT_MULTIPLE_OF_BLOCK_SIZE 0x2004
-#define ERR_AES_KEY_NOT_FOUND 0x2005
-
-/* ROM INFO */
-#define ERR_ROM_INFO_ALLOCATE_BUF_FAIL 0x3000
-#define ERR_ROM_INFO_MTD_OPEN_FAIL 0x3001
-#define ERR_ROM_INFO_MTD_READ_FAIL 0x3002
-#define ERR_ROM_INFO_MTD_NOT_FOUND 0x3003
-#define ERR_ROM_INFO_RESET_FAIL 0x3004
-#define ERR_ROM_INFO_MOD_READ_FAIL 0x3005
-#define ERR_ROM_INFO_ID_INVALID 0x3006
-#define ERR_INFO_MTD_NUM_INVALID 0x3007
-#define ERR_INFO_PART_NOT_FOUND 0x3008
-#define ERR_INFO_OVER_MAX_PART_COUNT 0x3009
-
-/* SW RSA */
-#define ERR_RSA_KEY_NOT_FOUND 0x4000
-#define ERR_RSA_WRONG_SIGNATURE_LEN 0x4001
-#define ERR_RSA_SIGNATURE_VERIFY_FAIL 0x4002
-
-/* SW HASH */
-#define ERR_HASH_WRONG_HASH_LEN 0x5000
-
-/* HW AES */
-#define ERR_KER_CRYPTO_INVALID_MODE 0x6000
-#define ERR_HACC_MODE_INVALID 0x6001
-#define ERR_HACC_KEY_INVALID 0x6002
-#define ERR_HACC_DATA_UNALIGNED 0x6003
-#define ERR_HACC_SEED_LEN_ERROR 0x6004
-#define ERR_HACC_ENC_FAIL 0x6005
-#define ERR_HACC_DEC_FAIL 0x6006
-#define ERR_HACC_HW_WRAP_KEY_NOT_INIT 0x6007
-#define ERR_HACC_SW_KEY_NOT_INIT 0x6008
-#define ERR_SBOOT_HACC_INIT_FAIL 0x6009
-#define ERR_SBOOT_HACC_LOCK_FAIL 0x600A
-#define ERR_HACC_ENABLE_CLK_FAIL 0x600B
-#define ERR_HACC_UNKOWN_USER 0x600C
-#define ERR_HACC_OPEN_SECURE_CONNECTION_FAIL 0x6010
-#define ERR_HACC_REQUEST_SECURE_SERVICE_FAIL 0x6011
-#define ERR_HACC_ALLOCATE_BUFFER_FAIL 0x6012
-#define ERR_HACC_MCMAP_BUFFER_FAIL 0x6013
-#define ERR_HACC_NOTIFY_TO_TRUSTLET_FAIL 0x6014
-#define ERR_HACC_NOTIFY_FROM_TRUSTLET_FAIL 0x6015
-#define ERR_HACC_CLOSE_SECURE_CONNECTION_FAIL 0x6016
-
-/* SEC CFG */
-#define ERR_SEC_CFG_ALLOCATE_BUF_FAIL 0x7000
-#define ERR_SEC_CFG_MTD_OPEN_FAIL 0x7001
-#define ERR_SEC_CFG_MTD_READ_FAIL 0x7002
-#define ERR_SEC_CFG_MTD_NOT_FOUND 0x7003
-#define ERR_SEC_CFG_END_PATTERN_NOT_EXIST 0x7004
-#define ERR_SEC_CFG_STATUS_INVALID 0x7005
-#define ERR_SEC_CFG_INVALID_ID 0x7006
-#define ERR_SEC_CFG_INVALID_END_PATTERN 0x7007
-#define ERR_SEC_CFG_MARK_INCOMPLETE_FAIL 0x7008
-#define ERR_SEC_CFG_RESET_FAIL 0x7009
-#define ERR_SEC_CFG_IMG_NOT_FOUND 0x700A
-#define ERR_SEC_CFG_IS_FULL 0x700B
-#define ERR_SEC_CFG_VERSION_INVALID 0x700C
-#define ERR_SEC_CFG_EXT_REGION_SPACE_OVERFLOW 0x700D
-#define ERR_SEC_CFG_MAGIC_INVALID 0x700E
-#define ERR_SEC_CFG_EXT_REGION_SELF_COPY_FAIL 0x700F
-#define ERR_SEC_CFG_EXT_REGION_OFFSET_INVALID 0x7010
-#define ERR_SEC_CFG_EXT_REGION_SIZE_CHANGE 0x7011
-
-/* SEC BOOT UPDATE */
-#define ERR_SBOOT_UPDATE_IMG_NOT_FOUND_IN_SECCFG 0x8000
-#define ERR_SBOOT_UPDATE_IMG_NOT_FOUND_IN_MTD 0x8001
-#define ERR_SBOOT_UPDATE_IMG_OPEN_FAIL 0x8002
-#define ERR_SBOOT_UPDATE_IMG_READ_FAIL 0x8003
-#define ERR_SBOOT_UPDATE_SEC_CFG_FAIL 0x8004
-#define ERR_SBOOT_UPDATE_SEC_RO_FAIL 0x8005
-#define ERR_SBOOT_UPDATE_CANNOT_ROLLBACK_VER 0x8006
-#define ERR_SBOOT_UPDATE_SEC_VER_NOT_FOUND 0x8007
-#define ERR_SBOOT_UPDATE_CUST_NAME_MISMATCH 0x8008
-#define ERR_SBOOT_UPDATE_IMG_INVALID 0x8009
-#define ERR_SBOOT_UPDATE_CUST_NAME_CANNOT_BE_NULL 0x800A
-
-/* SEC BOOT LIBRARY */
-#define SEC_SBOOT_INFO_PART_NOT_FOUND 0x9000
-#define SEC_SBOOT_OPEN_SEC_DRV_FAIL 0x9001
-#define SEC_SBOOT_SEC_DRV_IOCTL_FAIL 0x9002
-#define SEC_SBOOT_INFO_PART_WRITE_OPEN_FAIL 0x9003
-#define SEC_SBOOT_INFO_PART_WRITE_FAIL 0x9004
-#define SEC_SBOOT_INFO_INIT_FAIL 0x9005
-#define SEC_SBOOT_STATUE_QUERY_FAIL 0x9006
-#define SEC_SBOOT_NOT_ENABLED 0x9007
-#define SEC_SUSBDL_STATUE_QUERY_FAIL 0x9008
-#define SEC_SUSBDL_NOT_ENABLED 0x9009
-#define SEC_SBOOT_MARK_STATUS_FAIL 0x900A
-#define SEC_SBOOT_NOT_INIT_YET 0x900B
-#define SEC_SBOOT_NOTIFY_DRIVER_FAIL 0x900C
-#define SEC_SBOOT_INVALID_IMG_ATTR 0x900D
-
-/* MTD / USIF */
-#define ERR_MTD_INFO_NOT_FOUND 0xA000
-#define ERR_MTD_PART_COUNT_INVALID 0xA001
-#define ERR_MTD_PART_NOT_FOUND 0xA002
-#define ERR_MTD_PART_READ_FAIL 0xA003
-#define ERR_MTD_PART_WRITE_FAIL 0xA004
-#define ERR_MTD_PART_ADJUST_OFFSET_FAIL 0xA005
-#define ERR_MTD_PART_READ_MEMINFO_FAIL 0xA006
-#define ERR_MTD_PART_INVALID_MEMINFO_FAIL 0xA007
-#define ERR_MTD_NOT_SUPPORT_READ_YAFFS2 0xA008
-#define ERR_USIF_PART_READ_FAIL 0xA009
-#define ERR_USIF_PART_WRITE_FAIL 0xA00A
-#define ERR_USIF_PROC_READ_FAIL 0xA00B
-#define ERR_USIF_PROC_RN_NOT_FOUND 0xA00C
-#define ERR_MTD_NOT_SUPPORT_WRITE_YAFFS2 0xA00D
-#define ERR_USIF_NOT_SUPPORT_WRITE_YAFFS2 0xA00E
-#define ERR_USIF_NOT_SUPPORT_READ_YAFFS2 0xA00F
-#define ERR_GPT_PART_NAME_IS_NULL 0xA010
-#define ERR_GPT_PART_NAME_NOT_FOUND 0xA011
-
-
-
-/* SEC BOOT CHECK */
-#define ERR_SBOOT_CHECK_IMG_NOT_FOUND_IN_SECCFG 0xB000
-#define ERR_SBOOT_CHECK_IMG_NOT_FOUND_IN_MTD 0xB001
-#define ERR_SBOOT_CHECK_IMG_OPEN_FAIL 0xB002
-#define ERR_SBOOT_CHECK_IMG_READ_FAIL 0xB003
-#define ERR_SBOOT_CHECK_SEC_CFG_FAIL 0xB004
-#define ERR_SBOOT_CHECK_IMG_VERIFY_FAIL 0xB005
-#define ERR_SBOOT_CHECK_INVALID_IMAGE_OFFSET 0xB006
-#define ERR_SBOOT_CHECK_QUERY_ENABLED_FAIL 0xB007
-#define ERR_SBOOT_CHECK_PART_INVALID_STATUS 0xB008
-#define ERR_SBOOT_CHECK_MD_HDR_MAGIC_ERROR 0xB009
-#define ERR_SBOOT_CHECK_MD_NAME_INVLAID 0xB00A
-#define ERR_SBOOT_CHECK_MD_VER_CANNOT_ROLLBACK 0xB00B
-#define ERR_SBOOT_CHECK_INVALID_IMG_MAGIC_NUM 0xB00C
-#define ERR_SBOOT_CHECK_INVALID_MODEM 0xB00D
-#define ERR_SBOOT_CHECK_FL_NAME_INVLAID 0xB00E
-#define ERR_SBOOT_CHECK_FL_VER_CANNOT_ROLLBACK 0xB00F
-#define ERR_SBOOT_CHECK_INVALID_IMG_TYPE 0xB010
-
-/* META */
-#define ERR_META_NOT_CORRECT_MODE 0xC000
-#define ERR_NVRAM_DATA_NOT_ALIGNED 0xC001
-#define ERR_NVRAM_ENC_IOCTL_FAIL 0xC002
-#define ERR_NVRAM_DEC_IOCTL_FAIL 0xC002
-#define ERR_NVRAM_CIPHER_UT_FAIL 0xC003
-
-/* YAFFS2 COMMON */
-#define ERR_YAFFS2_PART_READ_FAIL 0xD000
-
-/* FILE SYSTEM */
-#define ERR_FS_ANDROID_SEC_LIST_NOT_SPECIFY 0xE000
-#define ERR_FS_SECRO_SEC_LIST_NOT_SPECIFY 0xE001
-#define ERR_FS_SEC_LIST_NOT_SPECIFY 0xE002
-#define ERR_FS_READ_SEC_LIST_FAIL 0xE003
-#define ERR_FS_SIGN_LENGTH_INVALID 0xE004
-#define ERR_FS_READ_BUF_IS_NULL 0xE005
-#define ERR_FS_OPEN_SEC_FILE_FAIL 0xE006
-#define ERR_FS_READ_SEC_FILE_FAIL 0xE007
-#define ERR_FS_READ_BUF_ALLOCATE_FAIL 0xE008
-#define ERR_FS_READ_SIZE_FAIL 0xE009
-#define ERR_FS_UNSUPPORT_IMAGE_NAME 0xE00A
-#define ERR_FS_SEC_LIST_NOT_SIGNED 0xE00B
-#define ERR_FS_READ_MODEM_FAIL 0xE00C
-#define ERR_FS_MD_BIN_NOT_SPECIFY 0xE00D
-#define ERR_FS_SECRO_OPEN_FAIL 0xE00E
-#define ERR_FS_SECRO_READ_SIZE_CANNOT_BE_ZERO 0xE00F
-#define ERR_FS_SECRO_READ_FAIL 0xE010
-#define ERR_FS_SECRO_AP_INVALID 0xE011
-#define ERR_FS_SECRO_MD_INVALID 0xE012
-#define ERR_FS_SECRO_READ_WRONG_SIZE 0xE013
-
-/* SIGN FORMAT */
-#define ERR_SIGN_FORMAT_HASH_SIZE_WRONG 0xE100
-#define ERR_SIGN_FORMAT_MAGIC_WRONG 0xE101
-#define ERR_SIGN_FORMAT_GENERATE_HASH_FAIL 0xE102
-#define ERR_SIGN_FORMAT_EXT_MAGIC_WRONG 0xE103
-#define ERR_SIGN_FORMAT_EXT_HDR_MAGIC_WRONG 0xE104
-#define ERR_SIGN_FORMAT_EXT_TYPE_NOT_SUPPORT 0xE105
-#define ERR_SIGN_FORMAT_EXT_HDR_NOT_FOUND 0xE106
-#define ERR_SIGN_FORMAT_CAL_HASH_BY_CHUNK_FAIL 0xE107
-
-/* SECRO IMAGE */
-#define ERR_SECROIMG_MTD_NOT_FOUND 0xF000
-#define ERR_SECROIMG_HACC_IS_LOCK 0xF001
-#define ERR_SECROIMG_HACC_INIT_FAIL 0xF002
-#define ERR_SECROIMG_DECRYPT_INVALID 0xF003
-#define ERR_SECROIMG_PART_NOT_FOUND 0xF004
-#define ERR_SECROIMG_INVALID_IMG_LEN 0xF005
-#define ERR_SECROIMG_ALLOCATE_BUF_FAIL 0xF006
-#define ERR_SECROIMG_IS_EMPTY 0xF007
-#define ERR_SECROIMG_MD_BUF_NOT_ENOUGH 0xF008
-#define ERR_SECROIMG_HACC_AP_DECRYPT_FAIL 0xF009
-#define ERR_SECROIMG_HACC_MD_DECRYPT_FAIL 0xF00A
-#define ERR_SECROIMG_INVALID_BUF_LEN 0xF00B
-#define ERR_SECROIMG_LEN_INCONSISTENT_WITH_PL 0xF00C
-#define ERR_SECROIMG_HASH_CHECK_FAIL 0xF00D
-#define ERR_SECROIMG_EMPTY_MD_INFO_STR 0xF00E
-#define ERR_SECROIMG_MD_INFO_NOT_EXIST 0xF00F
-#define ERR_SECROIMG_NEITHER_V3_NOR_V5_FORMAT 0xF010
-#define ERR_SECROIMG_V5_HASH_CHECK_FAIL 0xF011
-#define ERR_SECROIMG_V3_OFFSET_NOT_INIT 0xF012
-
-
-
-
-
-
-#endif /* SEC_ERROR_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_fsutil_inter.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_fsutil_inter.h
deleted file mode 100644
index 7943e9f35..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_fsutil_inter.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef FSUTILS_INTER_H
-#define FSUTILS_INTER_H
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-unsigned int sec_fs_read_secroimg (char* path, char* buf);
-
-#endif
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_hdr.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_hdr.h
deleted file mode 100644
index 230e5274c..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_hdr.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef SEC_HDR_H
-#define SEC_HDR_H
-
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include "sec_boot_lib.h"
-
-/**************************************************************************
- * EXPORT FUNCTIONS
- **************************************************************************/
-extern unsigned int shdr_magic (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned char* shdr_cust_name (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_cust_name_len (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_img_ver (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_img_len (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_img_offset (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_sign_len (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_sign_offset (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_sig_len (SEC_IMG_HEADER_U* sec_hdr);
-extern unsigned int shdr_sig_offset (SEC_IMG_HEADER_U* sec_hdr);
-extern void set_shdr_magic (SEC_IMG_HEADER_U* sec_hdr, unsigned int val);
-extern void set_shdr_img_ver (SEC_IMG_HEADER_U* sec_hdr, unsigned int ver);
-extern void set_shdr_cust_name (SEC_IMG_HEADER_U* sec_hdr, unsigned char* name, unsigned int len);
-extern void set_shdr_sign_len (SEC_IMG_HEADER_U* sec_hdr, unsigned int val);
-extern void set_shdr_sign_offset (SEC_IMG_HEADER_U* sec_hdr, unsigned int val);
-extern void set_shdr_ver (SEC_IMG_HEADER_VER ver);
-extern SEC_IMG_HEADER_VER get_shdr_ver (void);
-
-#endif /* SEC_HDR_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_ioctl.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_ioctl.h
deleted file mode 100644
index d5e8e21fb..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_ioctl.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef SEC_IOCTL_H
-#define SEC_IOCTL_H
-
-/* use 's' as magic number */
-#define SEC_IOC_MAGIC 's'
-
-/* random id */
-#define SEC_GET_RANDOM_ID _IOR(SEC_IOC_MAGIC, 1, unsigned int)
-
-/* secure boot init */
-#define SEC_BOOT_INIT _IOR(SEC_IOC_MAGIC, 2, unsigned int)
-#define SEC_BOOT_IS_ENABLED _IOR(SEC_IOC_MAGIC, 3, unsigned int)
-
-/* secure seccfg process */
-#define SEC_SECCFG_DECRYPT _IOR(SEC_IOC_MAGIC, 4, unsigned int)
-#define SEC_SECCFG_ENCRYPT _IOR(SEC_IOC_MAGIC, 5, unsigned int)
-
-/* secure usbdl */
-#define SEC_USBDL_IS_ENABLED _IOR(SEC_IOC_MAGIC, 6, unsigned int)
-
-/* HACC HW */
-#define SEC_HACC_CONFIG _IOR(SEC_IOC_MAGIC, 7, unsigned int)
-#define SEC_HACC_LOCK _IOR(SEC_IOC_MAGIC, 8, unsigned int)
-#define SEC_HACC_UNLOCK _IOR(SEC_IOC_MAGIC, 9, unsigned int)
-#define SEC_HACC_ENABLE_CLK _IOR(SEC_IOC_MAGIC, 10, unsigned int)
-
-/* secure boot check */
-#define SEC_BOOT_PART_CHECK_ENABLE _IOR(SEC_IOC_MAGIC, 11, unsigned int)
-#define SEC_BOOT_NOTIFY_MARK_STATUS _IOR(SEC_IOC_MAGIC, 12, unsigned int)
-#define SEC_BOOT_NOTIFY_PASS _IOR(SEC_IOC_MAGIC, 13, unsigned int)
-#define SEC_BOOT_NOTIFY_FAIL _IOR(SEC_IOC_MAGIC, 14, unsigned int)
-#define SEC_BOOT_NOTIFY_RMSDUP_DONE _IOR(SEC_IOC_MAGIC, 15, unsigned int)
-#define SEC_BOOT_NOTIFY_STATUS _IOR(SEC_IOC_MAGIC, 19, unsigned int)
-
-/* rom info */
-#define SEC_READ_ROM_INFO _IOR(SEC_IOC_MAGIC, 16, unsigned int)
-
-/* META */
-#define SEC_NVRAM_HW_ENCRYPT _IOR(SEC_IOC_MAGIC, 17, unsigned int)
-#define SEC_NVRAM_HW_DECRYPT _IOR(SEC_IOC_MAGIC, 18, unsigned int)
-
-/* HEVC */
-#define SEC_HEVC_EOP _IOR(SEC_IOC_MAGIC, 20, unsigned int)
-#define SEC_HEVC_DOP _IOR(SEC_IOC_MAGIC, 21, unsigned int)
-
-#define SEC_IOC_MAXNR (22)
-
-#define SEC_DEV "/dev/sec"
-
-#endif /* end of SEC_IOCTL_H */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_key.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_key.h
deleted file mode 100644
index f0fb7e328..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_key.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef SEC_KEY_H
-#define SEC_KEY_H
-
-/**************************************************************************
- * [SEC-KEY ID]
- **************************************************************************/
-#define ROM_INFO_SEC_KEY_ID "AND_SECKEY_v"
-#define ROM_INFO_SEC_KEY_VER 0x1
-
-
-/**************************************************************************
- * [SEC-KEY FORNAT]
- **************************************************************************/
-#define AND_SEC_KEY_SIZE (592)
-
-typedef struct {
- unsigned char m_id[16];
- unsigned int m_sec_key_ver;
-
- /* rsa key */
- /* image auth key length is 256/2 = 128 */
- unsigned char img_auth_rsa_n[256];
- unsigned char img_auth_rsa_e[5];
-
- /* sml aes key */
- unsigned char sml_aes_key[32];
-
- /* crypto seed */
- unsigned char crypto_seed[16];
-
- /* rsa key */
- /* sml auth key length is 256/2 = 128 */
- unsigned char sml_auth_rsa_n[256];
- unsigned char sml_auth_rsa_e[5];
-
-} AND_SECKEY_T;
-
-#endif /* SEC_KEY_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_key_util.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_key_util.h
deleted file mode 100644
index 574747a33..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_key_util.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef SEC_KEY_UTIL_H
-#define SEC_KEY_UTIL_H
-
-/**************************************************************************
- * EXPORT FUNCTION
- **************************************************************************/
-extern void sec_decode_key(unsigned char* key, unsigned int key_len, unsigned char* seed, unsigned int seed_len);
-
-#endif /* SEC_KEY_UTIL_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_log.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_log.h
deleted file mode 100644
index 12092892b..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_log.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef LOGGING_H
-#define LOGGING_H
-
-/**************************************************************************
-* DEBUG CONTROL
-**************************************************************************/
-#include <mach/sec_osal.h>
-#include "sec_osal_light.h"
-#define NEED_TO_PRINT(flag) ((flag) == true)
-#define SMSG(debug_level, ...) do \
- { \
- if(NEED_TO_PRINT(debug_level)) \
- printk(__VA_ARGS__); \
- } while(0);
-
-/**************************************************************************
- * EXTERNAL VARIABLE
- **************************************************************************/
-extern bool bMsg;
-
-#endif /* LOGGING_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd.h
deleted file mode 100644
index 49fafe4d2..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef SEC_MTD_H
-#define SEC_MTD_H
-
-#include <mach/sec_osal.h>
-
-/**************************************************************************
-* MTD INTERNAL DEFINITION
-**************************************************************************/
-typedef struct _MtdRCtx
-{
- char *buf;
- ASF_FILE fd;
-
-} MtdRCtx;
-
-/**************************************************************************
-* MTD CONFIGURATION
-**************************************************************************/
-#define ROM_INFO_SEARCH_LEN (0x100000)
-#define SECRO_SEARCH_START (0x0)
-#define SECRO_SEARCH_LEN (0x100000)
-
-/* mtd number */
-#define MTD_PL_NUM (0x0)
-#define MTD_SECCFG_NUM (0x3)
-
-/* indicate the search region each time */
-#define ROM_INFO_SEARCH_REGION (0x2000)
-#define SECRO_SEARCH_REGION (0x4000)
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-extern void sec_mtd_find_partitions(void);
-extern unsigned int sec_mtd_read_image(char* part_name, char* buf, unsigned int off, unsigned int sz);
-extern unsigned int sec_mtd_get_off(char* part_name);
-
-#endif // SEC_MTD_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd_util.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd_util.h
deleted file mode 100644
index f01110bbf..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_mtd_util.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef MTD_UTILS_H
-#define MTD_UTILS_H
-
-/**************************************************************************
-* PARTITION RECORD
-**************************************************************************/
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-
-typedef struct _MtdPart
-{
- char name[16];
- unsigned long long sz;
- unsigned long long off;
- unsigned long long e_size;
-
-} MtdPart;
-
-#else
-
-typedef struct _MtdPart
-{
- char name[16];
- unsigned int sz;
- unsigned int off;
- unsigned int e_size;
-
-} MtdPart;
-
-#endif
-/**************************************************************************
-* MTD CONFIGURATION
-**************************************************************************/
-/* partition table read from /proc/mtd */
-#define MAX_MTD_PARTITIONS (25)
-
-/* search region and off */
-//#ifdef EMMC_PROJECT
-/* work for nand and emmc */
-#define ROM_INFO_SEARCH_START (0x0)
-//#else
-//#define ROM_INFO_SEARCH_START (0x20000)
-//#endif
-
-/**************************************************************************
- * EXPORT VARIABLES
- **************************************************************************/
-extern MtdPart mtd_part_map[];
-
-/**************************************************************************
- * UTILITY
- **************************************************************************/
-char* mtd2pl (char* part_name);
-char* pl2mtd (char* part_name);
-
-#endif // MTD_UTILS_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_nvram.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_nvram.h
deleted file mode 100644
index b3de22fbe..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_nvram.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef SEC_META_H
-#define SEC_META_H
-
-/* used for META library */
-#define NVRAM_CIPHER_LEN (16)
-
-/******************************************************************************
- * MODEM CONTEXT FOR BOTH USER SPACE PROGRAM AND KERNEL MODULE
- ******************************************************************************/
-typedef struct
-{
- unsigned char data[NVRAM_CIPHER_LEN];
- unsigned int ret;
-
-} META_CONTEXT;
-
-/******************************************************************************
- * EXPORT FUNCTIONS
- ******************************************************************************/
-extern int sec_nvram_enc (META_CONTEXT *meta_ctx);
-extern int sec_nvram_dec (META_CONTEXT *meta_ctx);
-
-#endif /* SEC_META_H*/
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_osal_light.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_osal_light.h
deleted file mode 100644
index 99b8d640c..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_osal_light.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef SEC_OSAL_LIGHT_H
-#define SEC_OSAL_LIGHT_H
-
-/**************************************************************************
- * INCLUDE HEADERS
- **************************************************************************/
-#include <linux/string.h>
-#include <linux/stddef.h>
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <stdbool.h>
-#include <linux/printk.h>
-#include <asm/io.h>
-#include <linux/err.h>
-
-#endif /* SEC_OSAL_LIGHT_H */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_rom_info.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_rom_info.h
deleted file mode 100644
index edfe20f8d..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_rom_info.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef SEC_ROMINFO_H
-#define SEC_ROMINFO_H
-
-#include "sec_boot.h"
-#include "sec_key.h"
-#include "sec_ctrl.h"
-
-
-/**************************************************************************
- * INIT VARIABLES
- **************************************************************************/
-#define RI_NAME "AND_ROMINFO_v"
-#define RI_NAME_LEN 13
-/* VER1 - only a ROM INFO region is provided */
-/* VER2 - ANTI-CLONE feature is supported */
-#define ROM_INFO_VER 0x2
-#define ROM_INFO_SEC_RO_EXIST 0x1
-#define ROM_INFO_ANTI_CLONE_OFFSET 0x54
-#define ROM_INFO_ANTI_CLONE_LENGTH 0xE0
-#define ROM_INFO_DEFAULT_SEC_CFG_OFFSET 0x360000
-#define ROM_INFO_SEC_CFG_LENGTH 0x20000
-
-/**************************************************************************
- * ANDRIOD ROM INFO FORMAT
- **************************************************************************/
-/* this structure should always sync with FlashLib
- becuase FlashLib will search storage to find ROM_INFO */
-#define AND_ROM_INFO_SIZE (960)
-typedef struct {
-
- unsigned char m_id[16]; /* MTK */
- unsigned int m_rom_info_ver; /* MTK */
- unsigned char m_platform_id[16]; /* CUSTOMER */
- unsigned char m_project_id[16];
-
- unsigned int m_sec_ro_exist; /* MTK */
- unsigned int m_sec_ro_offset; /* MTK */
- unsigned int m_sec_ro_length; /* MTK */
-
- unsigned int m_ac_offset; /* MTK :
- no use */
-
- unsigned int m_ac_length; /* MTK :
- no use */
-
- unsigned int m_sec_cfg_offset; /* MTK :
- part info. from
- parititon table.
-
- tool will refer to
- this setting to
- find SEC CFG */
-
- unsigned int m_sec_cfg_length; /* MTK :
- part info. from
- parititon table.
-
- tool will refer to
- this setting to
- find SEC CFG */
-
- unsigned char m_reserve1[128];
-
- AND_SECCTRL_T m_SEC_CTRL; /* CUSTOMER :
- secure feature
- control */
-
- unsigned char m_reserve2[18];
-
- /* CUSTOMER :
- secure boot check
- partition */
- AND_SECBOOT_CHECK_PART_T m_SEC_BOOT_CHECK_PART;
-
- AND_SECKEY_T m_SEC_KEY; /* CUSTOMER :
- key */
-
-} AND_ROMINFO_T;
-
-#endif /* SEC_ROMINFO_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_secroimg.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_secroimg.h
deleted file mode 100644
index f78687cc6..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_secroimg.h
+++ /dev/null
@@ -1,198 +0,0 @@
-#ifndef AC_REGION_H
-#define AC_REGION_H
-
-#include "sec_osal_light.h"
-
-/**************************************************************************
- * [FILE SYSTEM SECROIMG PATH]
- **************************************************************************/
-/* it is only used for non-security platform */
-#define FS_SECRO_PATH "/system/secro/AC_REGION"
-
-
-/**************************************************************************
- * [AC REGION ID]
- **************************************************************************/
-#define ROM_SEC_AC_REGION_ID "AND_AC_REGION"
-#define ROM_SEC_AC_REGION_ID_LEN (13)
-
-#define RES_FOR_HEADER (0x400) // 1KB
-#define ROM_SEC_AC_SEARCH_LEN 0x100000 // 1MB
-
-#define MAX_SECRO_V3_OFFSET 0xFFFFFFFF
-
-
-
-/**************************************************************************
- * [AC-REGION HEADER FORNAT]
- **************************************************************************/
-#define AC_H_MAGIC (0x48484848)
-
-typedef struct {
-
- unsigned char m_id[16];
- unsigned int magic_number;
-
- unsigned int region_length; /* include andro and sv5*/
- unsigned int region_offset;
-
- unsigned int hash_length;
- unsigned int hash_offset;
-
- unsigned int andro_length;
- unsigned int andro_offset;
-
- unsigned int md_length;
- unsigned int md_offset;
-
- unsigned int md2_length;
- unsigned int md2_offset;
-
- unsigned char world_phone_support; /* for secro v5 format to support world phone case */
- unsigned char world_phone_md_count; /* for secro v5 format to support world phone case */
-
- unsigned char reserve[2];
-
-} AND_AC_HEADER_T;
-
-
-/**************************************************************************
- * [AC-REGION ANDRO FORNAT]
- **************************************************************************/
-#define AC_ANDRO_MAGIC (0x41414141)
-#define AP_SECRO_MAX_LEN (2939)
-
-/* control flag */
-#define FACTORY_EN_CODE (0x45)
-
-typedef struct {
-
- unsigned int magic_number;
- unsigned char sml_aes_key[32]; /* sml aes key */
- unsigned char factory_en;
- unsigned char reserve2[AP_SECRO_MAX_LEN];
-
-} AND_AC_ANDRO_T;
-
-/**************************************************************************
- * [AC-REGION MD FORNAT]
- **************************************************************************/
-#define AC_MD_MAGIC (0x35353535)
-#define MD_SECRO_MAX_LEN (4092)
-
-typedef struct {
-
- unsigned int magic_number;
- unsigned char reserve[MD_SECRO_MAX_LEN];
-
-} AND_AC_MD_T;
-
-#define AC_MD2_MAGIC (0x36363636)
-#define MD2_SECRO_MAX_LEN (4092)
-
-typedef struct {
-
- unsigned int magic_number;
- unsigned char reserve[MD2_SECRO_MAX_LEN];
-
-} AND_AC_MD2_T;
-
-
-/**************************************************************************
- * [Padding format to be able to align to 512/1024/2048/4096 for flash]
- **************************************************************************/
-typedef struct {
- unsigned int md_num;
- unsigned int md_len;
- unsigned char md_name[64];
- unsigned char reserve[8];
-} AND_AC_MD_INFO_V3a_T;
-
-#define MAX_V5_SUPPORT_MD_NUM 10
-
-typedef struct {
- AND_AC_MD_INFO_V3a_T md_v3a_info[MAX_V5_SUPPORT_MD_NUM];
- unsigned char reserve[224];
-} AND_SECROIMG_PADDING_T;
-
-
-
-/**************************************************************************
- * [AC-REGION FORNAT]
- **************************************************************************/
-typedef struct {
-
- AND_AC_HEADER_T m_header; /* 64 */
- AND_AC_ANDRO_T m_andro; /* 0xBA0 : 2976 */
- AND_AC_MD_T m_md; /* 0x1000 : 4096 */
- AND_AC_MD2_T m_md2; /* 0x1000 : 4096 */
- unsigned char hash[32]; /* it can be extended to SHA256 */
- AND_SECROIMG_PADDING_T m_padding; /* 0x400 : 1024 ,use padding area to store MD1 ~ MD10 modem_info*/
-} AND_SECROIMG_T;
-
-
-/**************************************************************************
- * [SECROIMG v5a FORNAT for v5] - To support world phone
- **************************************************************************/
-typedef struct {
- unsigned char m_identifier[16];
- unsigned int magic_number;
-
- unsigned int region_len; /* include andro, sv5 and hash */
- unsigned int region_off;
-
- unsigned int hash_len;
- unsigned int hash_off;
-
- unsigned int md_info_len;
- unsigned int md_info_off;
-
- unsigned int md_len;
- unsigned int md_off;
-
- unsigned char reserve[12];
-} AND_AC_HEADER_V5a_T;
-
-#define AC_MD_INFO_MAGIC (0x42424242)
-
-typedef struct {
- unsigned int magic_number; /* Should be 0x42424242 */
- unsigned char md_name[64];
- unsigned int md_num;
- unsigned char reserve[2904];
-} AND_AC_MD_INFO_V5a_T;
-
-#define AC_SV5_MAGIC_MD_V5a (0x37373737)
-#define MD_V5a_SECRO_MAX_LEN (8188)
-
-typedef struct {
- unsigned int magic_number; /* Should be 0x37373737 */
- unsigned char reserve[MD_V5a_SECRO_MAX_LEN];
-} AND_AC_MD_V5a_T;
-
-#define AND_SECROIMG_V5a_SIZE (0x3000)
-
-typedef struct {
- AND_AC_HEADER_V5a_T m_header_v5a; /* 64B */
- AND_AC_MD_INFO_V5a_T m_md_info_v5a; /* 0xBA0 : 2976B */
- AND_AC_MD_V5a_T m_md_sro_v5a; /* 0x1000 : 8192B */
- unsigned char hash_v5a[32]; /* 32B, it can be extended to SHA256 */
- AND_SECROIMG_PADDING_T padding;
-} AND_SECROIMG_V5a_T;
-
-
-//typedef enum{
-// SECRO_MD1 = 0,
-// SECRO_MD2,
-//} SECRO_USER;
-
-/**************************************************************************
- * [EXPORT FUNCTION]
- **************************************************************************/
-extern unsigned int sec_secro_check (void);
-extern bool sec_secro_ac (void);
-extern uint32 sec_secro_v5_check (void);
-extern unsigned char masp_secro_en (void);
-
-
-#endif /* AC_REGION_H */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_extension.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_extension.h
deleted file mode 100644
index 33736b096..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_extension.h
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef _SEC_SIGN_EXTENSION_H
-#define _SEC_SIGN_EXTENSION_H
-
-#define MAX_VERITY_COUNT 32
-#define SEC_EXTENSION_MAGIC (0x7A797A79)
-#define SEC_EXTENSION_MAGIC_V4 (0x7B797B79)
-#define SEC_EXTENSION_HEADER_MAGIC (0x45454545)
-
-#define CRYPTO_SIZE_UNKNOWN 0
-
-typedef enum
-{
- SEC_EXT_HDR_UNKNOWN = 0,
- SEC_EXT_HDR_CRYPTO = 1,
- SEC_EXT_HDR_FRAG_CFG = 2,
- SEC_EXT_HDR_HASH_ONLY = 3,
- SEC_EXT_HDR_HASH_SIG = 4,
- SEC_EXT_HDR_SPARSE = 5,
- SEC_EXT_HDR_HASH_ONLY_64 = 6,
-
- SEC_EXT_HDR_END_MARK = 0xFFFFFFFF
-} SEC_EXT_HEADER_TYPE;
-
-typedef enum
-{
- SEC_CRYPTO_HASH_UNKNOWN = 0,
- SEC_CRYPTO_HASH_MD5 = 1,
- SEC_CRYPTO_HASH_SHA1 = 2,
- SEC_CRYPTO_HASH_SHA256 = 3,
- SEC_CRYPTO_HASH_SHA512 = 4,
-
-} SEC_CRYPTO_HASH_TYPE;
-
-typedef enum
-{
- SEC_CRYPTO_SIG_UNKNOWN = 0,
- SEC_CRYPTO_SIG_RSA512 = 1,
- SEC_CRYPTO_SIG_RSA1024 = 2,
- SEC_CRYPTO_SIG_RSA2048 = 3,
-
-} SEC_CRYPTO_SIGNATURE_TYPE;
-
-typedef enum
-{
- SEC_CRYPTO_ENC_UNKNOWN = 0,
- SEC_CRYPTO_ENC_RC4 = 1,
- SEC_CRYPTO_ENC_AES128 = 2,
- SEC_CRYPTO_ENC_AES192 = 3,
- SEC_CRYPTO_ENC_AES256 = 4,
-
-} SEC_CRYPTO_ENCRYPTION_TYPE;
-
-typedef enum
-{
- SEC_SIZE_HASH_MD5 = 16,
- SEC_SIZE_HASH_SHA1 = 20,
- SEC_SIZE_HASH_SHA256 = 32,
- SEC_SIZE_HASH_SHA512 = 64,
-
-} SEC_CRYPTO_HASH_SIZE_BYTES;
-
-typedef enum
-{
- SEC_SIZE_SIG_RSA512 = 64,
- SEC_SIZE_SIG_RSA1024 = 128,
- SEC_SIZE_SIG_RSA2048 = 256,
-
-} SEC_CRYPTO_SIGNATURE_SIZE_BYTES;
-
-
-typedef enum
-{
- SEC_CHUNK_SIZE_ZERO = 0,
- SEC_CHUNK_SIZE_UNKNOWN = 0x00100000,
- SEC_CHUNK_SIZE_1M = 0x00100000,
- SEC_CHUNK_SIZE_2M = 0x00200000,
- SEC_CHUNK_SIZE_4M = 0x00400000,
- SEC_CHUNK_SIZE_8M = 0x00800000,
- SEC_CHUNK_SIZE_16M = 0x01000000,
- SEC_CHUNK_SIZE_32M = 0x02000000,
-
-} SEC_FRAG_CHUNK_SIZE_BYTES;
-
-
-typedef struct _SEC_EXTENSTION_CRYPTO
-{
- unsigned int magic;
- unsigned int ext_type;
- unsigned char hash_type;
- unsigned char sig_type;
- unsigned char enc_type;
- unsigned char reserved;
-} SEC_EXTENSTION_CRYPTO;
-
-typedef struct _SEC_FRAGMENT_CFG
-{
- unsigned int magic;
- unsigned int ext_type;
- unsigned int chunk_size;
- unsigned int frag_count;
-} SEC_FRAGMENT_CFG;
-
-typedef struct _SEC_EXTENSTION_HASH_ONLY
-{
- unsigned int magic;
- unsigned int ext_type;
- unsigned int sub_type; /* hash type */
- unsigned int hash_offset;
- unsigned int hash_len;
- unsigned char hash_data[];
-} SEC_EXTENSTION_HASH_ONLY;
-
-
-typedef struct _SEC_EXTENSTION_HASH_ONLY_64
-{
- unsigned int magic;
- unsigned int ext_type;
- unsigned int sub_type; /* hash type */
- unsigned int padding;
- unsigned long long hash_offset_64;
- unsigned long long hash_len_64;
- unsigned char hash_data[];
-} SEC_EXTENSTION_HASH_ONLY_64;
-
-typedef struct _SEC_EXTENSTION_HASH_SIG
-{
- unsigned int magic;
- unsigned int ext_type;
- unsigned int sig_type; /* sig type */
- unsigned int hash_type; /* hash type */
- unsigned int auth_offset;
- unsigned int auth_len;
- unsigned char auth_data[]; /* sig + hash */
-} SEC_EXTENSTION_HASH_SIG;
-
-typedef struct _SEC_EXTENSTION_END_MARK
-{
- unsigned int magic;
- unsigned int ext_type;
-} SEC_EXTENSTION_END_MARK;
-
-typedef struct _SEC_IMG_EXTENSTION_SET
-{
- SEC_EXTENSTION_CRYPTO *crypto;
- SEC_FRAGMENT_CFG *frag;
- SEC_EXTENSTION_END_MARK *end;
- SEC_EXTENSTION_HASH_ONLY **hash_only;
- SEC_EXTENSTION_HASH_ONLY_64 **hash_only_64;
-} SEC_IMG_EXTENSTION_SET;
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_header.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_header.h
deleted file mode 100644
index c97435f1a..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_sign_header.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef SECIMGHEADER_H
-#define SECIMGHEADER_H
-
-/**************************************************************************
- * SIGN CFG PARSING
- **************************************************************************/
-#define CUSTOM_NAME "CUSTOM_NAME"
-#define IMAGE_VERSION "IMAGE_VERSION"
-
-/* in order to speedup verification, you can customize the image size
- which should be signed and checked at boot time */
-#define VERIFY_OFFSET "VERIFY_OFFSET"
-#define VERIFY_LENGTH "VERIFY_LENGTH"
-
-/**************************************************************************
- * SEC IMAGE HEADER FORMAT
- **************************************************************************/
-#define SEC_IMG_MAGIC (0x53535353)
-#define SEC_IMG_MAGIC_LEN (4)
-
-#define SEC_IMG_HEADER_SIZE (64)
-
-#define HASH_SIZE (20)
-#define RSA_KEY_SIZE (128)
-#define SIG_LEN (RSA_KEY_SIZE)
-#define HASH_SIG_LEN (HASH_SIZE+SIG_LEN)
- /* HASH + SIGNATURE */
-/* Legacy (before W1151) */
-typedef struct _SEC_IMG_HEADER_V1
-{
- unsigned int magic_number;
-
- unsigned char cust_name [16];
- unsigned int image_version;
- unsigned int image_length;
- unsigned int image_offset;
-
- unsigned int sign_offset;
- unsigned int sign_length;
-
- unsigned int signature_offset;
- unsigned int signature_length;
-
- unsigned char dummy[16];
-
-} SEC_IMG_HEADER_V1;
-
-/* New (After W1151) */
-typedef struct _SEC_IMG_HEADER_V2
-{
- unsigned int magic_number;
-
- /* After WK1151, the size of customer name will be changed from 16
- bytes to 32 bytes due to customer's request. To distinguish between the
- old version and new version, the simplest way is to check the value of
- signature_length.
-
- Flash tool downloads images by using new format
- => Tool can find the image is old because signature_length is all 0x00.
- Therefore, Flash tool will automatically apply old image format */
-
- unsigned char cust_name [32];
- unsigned int image_version;
- unsigned int image_length;
- unsigned int image_offset;
-
- unsigned int sign_offset;
- unsigned int sign_length;
-
- unsigned int signature_offset;
- unsigned int signature_length;
-
-} SEC_IMG_HEADER_V2, SEC_IMG_HEADER_V3, SEC_IMG_HEADER;
-
-typedef struct _SEC_IMG_HEADER_V4
-{
- unsigned int magic_number;
-
- unsigned char cust_name [32];
- unsigned int image_verion;
- unsigned int signature_length;
- unsigned int image_offset;
-
- unsigned int ext_magic;
- unsigned int ext_hdr_length;
-
- unsigned int image_length_high;
- unsigned int image_length_low;
-} SEC_IMG_HEADER_V4;
-
-
-typedef union
-{
- SEC_IMG_HEADER_V1 v1;
- SEC_IMG_HEADER_V2 v2;
- SEC_IMG_HEADER_V3 v3;
- SEC_IMG_HEADER_V4 v4;
- /*this implies all*/
- SEC_IMG_HEADER va;
-} SEC_IMG_HEADER_U;
-
-typedef enum
-{
- SEC_HDR_V1 = 1,
- SEC_HDR_V2 = 2,
- SEC_HDR_V3 = 3,
- SEC_HDR_V4 = 4,
- UNSET
-
-} SEC_IMG_HEADER_VER;
-
-/**************************************************************************
- * IMAGE HEADER CHECK OPERATION
- **************************************************************************/
-
-#define SEC_USBDL_WRITE_IMAGE_HEADER 0x11
-#define SEC_USBDL_WRITE_IMAGE_SIGNATURE_HASH 0x22
-#define SEC_USBDL_IMAGE_INFO_CHECK_RESULT 0x33
-#define SEC_USBDL_WRITE_IMAGE_NAME 0x44
-#define SEC_USBDL_WRITE_IMAGE_OFFSET 0x55
-#define SEC_USBDL_WRITE_TYPE 0x66
-#define SEC_USBDL_WRITE_IMAGE_EXTENSION 0x77
-
-
-#define SEC_USBDL_IMAGE_NAME_LEN 16
-#define SEC_USBDL_IMAGE_INFO_RESULT_PASS 0x5555
-#define SEC_USBDL_IMAGE_INFO_RESULT_FAIL 0x4444
-
-
-#endif /* SECIMGHEADER_H */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_core.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_core.h
deleted file mode 100644
index 7110e57a8..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_core.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _SEC_SIGN_FORMAT_CORE_H
-#define _SEC_SIGN_FORMAT_CORE_H
-
-#include "sec_signfmt_def.h"
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-int sec_signfmt_get_hash_length(SEC_IMG_U *img_if, ASF_FILE fp, char *ext_buf);
-int sec_signfmt_get_signature_length(SEC_IMG_U *img_if, ASF_FILE fp, char *ext_buf);
-int sec_signfmt_get_extension_length(SEC_IMG_U *img_if, ASF_FILE fp);
-int sec_signfmt_verify_file(char *file_path, SEC_IMG_HEADER *img_hdr, unsigned int *data_offset, unsigned int *data_sec_len);
-int sec_signfmt_calculate_filelist_hash(char* part_name, SEC_IMG_U *img_if, char *file_path,
- char *hash_buf, unsigned int hash_len, char *ext_buf);
-int sec_signfmt_calculate_image_hash(char* part_name, SEC_IMG_U *img_if, char *hash_ptr, unsigned int hash_len, char *ext_buf);
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_def.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_def.h
deleted file mode 100644
index 93616483a..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_def.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _SEC_SIGN_FORMAT_DEF_H
-#define _SEC_SIGN_FORMAT_DEF_H
-
-#include <mach/sec_osal.h>
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_util.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_util.h
deleted file mode 100644
index 217c86750..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_util.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef SEC_SIGN_FORMAT_UTIL_H
-#define SEC_SIGN_FORMAT_UTIL_H
-
-#include "sec_sign_header.h"
-#include "sec_sign_extension.h"
-#include "sec_log.h"
-#include "sec_osal_light.h"
-
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-unsigned int get_hash_size(SEC_CRYPTO_HASH_TYPE hash);
-unsigned int get_signature_size(SEC_CRYPTO_SIGNATURE_TYPE sig);
-unsigned char is_signfmt_v1(SEC_IMG_HEADER *hdr);
-unsigned char is_signfmt_v2(SEC_IMG_HEADER *hdr);
-unsigned char is_signfmt_v3(SEC_IMG_HEADER *hdr);
-unsigned char is_signfmt_v4(SEC_IMG_HEADER *hdr);
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v2.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v2.h
deleted file mode 100644
index 399392b23..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v2.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _SEC_SIGN_FORMAT_V2_H
-#define _SEC_SIGN_FORMAT_V2_H
-
-#include "sec_sign_header.h"
-#include "sec_signfmt_def.h"
-
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-int sec_signfmt_verify_file_v2(ASF_FILE fp, SEC_IMG_HEADER *img_hdr);
-unsigned int sec_signfmt_get_extension_length_v2(ASF_FILE fp);
-int sec_signfmt_calculate_image_hash_v2(char* part_name, SEC_IMG_HEADER *img_hdr, unsigned int image_type, char *hash_buf, unsigned int hash_len);
-unsigned int sec_signfmt_get_hash_length_v2(void);
-unsigned int sec_signfmt_get_signature_length_v2(void);
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v3.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v3.h
deleted file mode 100644
index 340e4e744..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v3.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _SEC_SIGN_FORMAT_V3_H
-#define _SEC_SIGN_FORMAT_V3_H
-
-#include "sec_sign_header.h"
-#include "sec_cfg.h"
-#include "sec_signfmt_def.h"
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-int sec_signfmt_verify_file_v3(ASF_FILE fp, SEC_IMG_HEADER *img_hdr);
-unsigned int sec_signfmt_get_hash_length_v3(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr, char *ext_buf);
-unsigned int sec_signfmt_get_signature_length_v3(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr, char *ext_buf);
-unsigned int sec_signfmt_get_extension_length_v3(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr);
-int sec_signfmt_calculate_image_hash_v3(char* part_name, SECURE_IMG_INFO_V3 *img_if, char *final_hash_buf, unsigned int hash_len, char *ext_buf);
-
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v4.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v4.h
deleted file mode 100644
index 54c68cc5d..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_signfmt_v4.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _SEC_SIGN_FORMAT_V4_H
-#define _SEC_SIGN_FORMAT_V4_H
-
-#include "sec_sign_header.h"
-#include "sec_cfg.h"
-#include "sec_signfmt_def.h"
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-int sec_signfmt_verify_file_v4(ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p);
-unsigned int sec_signfmt_get_hash_length_v4(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p, char *ext_buf);
-unsigned int sec_signfmt_get_signature_length_v4(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p, char *ext_buf);
-unsigned int sec_signfmt_get_extension_length_v4(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p);
-int sec_signfmt_calculate_image_hash_v4(char* part_name, SECURE_IMG_INFO_V3 *img_if, char *final_hash_buf, unsigned int hash_len, char *ext_buf);
-
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_typedef.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_typedef.h
deleted file mode 100644
index 45a0c0f54..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_typedef.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef SEC_PAL_H
-#define SEC_PAL_H
-
-#include "sec_osal_light.h"
-#include <mach/sec_osal.h>
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-/******************************************************************************
- * DEBUG
- ******************************************************************************/
-/* Debug message event */
-#define DBG_EVT_NONE (0) /* No event */
-#define DBG_EVT_CMD (1 << 0) /* SEC CMD related event */
-#define DBG_EVT_FUNC (1 << 1) /* SEC function event */
-#define DBG_EVT_INFO (1 << 2) /* SEC information event */
-#define DBG_EVT_WRN (1 << 30) /* Warning event */
-#define DBG_EVT_ERR (1 << 31) /* Error event */
-#define DBG_EVT_ALL (0xffffffff)
-
-#define DBG_EVT_MASK (DBG_EVT_ALL)
-
-#ifdef SEC_DEBUG
-#define MSG(evt, fmt, args...) \
-do { \
- if ((DBG_EVT_##evt) & DBG_EVT_MASK) { \
- printk(fmt, ##args); \
- } \
-} while(0)
-#else
-#define MSG(evt, fmt, args...) do{}while(0)
-#endif
-
-#define MSG_FUNC(mod) MSG(FUNC, "[%s] %s\n", mod, __FUNCTION__)
-
-/******************************************************************************
- * EXPORT FUNCTION
- ******************************************************************************/
-extern void *mcpy(void *dest, const void *src, int count);
-extern int mcmp (const void *cs, const void *ct, int count);
-extern void dump_buf(unsigned char* buf, unsigned int len);
-
-#endif /* end of SEC_LIB_H */
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_usbdl.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_usbdl.h
deleted file mode 100644
index 463b9842a..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_usbdl.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef SEC_USBDL_H
-#define SEC_USBDL_H
-
-/**************************************************************************
- * [S-USBDL]
- **************************************************************************/
-/* S-USBDL Attribute */
-#define ATTR_SUSBDL_DISABLE 0x00
-#define ATTR_SUSBDL_ENABLE 0x11
-#define ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP 0x22
-
-/**************************************************************************
- * EXPORT FUNCTION
- **************************************************************************/
-extern int sec_usbdl_enabled (void);
-
-#endif /* SEC_USBDL_H */
-
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_usif.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_usif.h
deleted file mode 100644
index 89c9c2be8..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_usif.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef USIF_H
-#define USIF_H
-
-extern int sec_usif_check(void);
-
-#endif // USIFUTILS_H_
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_usif_util.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_usif_util.h
deleted file mode 100644
index c3032cb1c..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_usif_util.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef USIF_UTILS_H
-#define USIF_UTILS_H
-
-/**************************************************************************
- * EXTERNAL FUNCTIONS
- *************************************************************************/
-extern char* usif2pl (char* part_name);
-extern char* pl2usif (char* part_name);
-extern bool sec_usif_enabled(void);
-extern void sec_usif_part_path(unsigned int part_num, char* part_path, unsigned int part_path_len);
-
-#endif // USIF_UTILS_H
diff --git a/drivers/misc/mediatek/masp/asf/asf_inc/sec_wrapper.h b/drivers/misc/mediatek/masp/asf/asf_inc/sec_wrapper.h
deleted file mode 100644
index 602fc9137..000000000
--- a/drivers/misc/mediatek/masp/asf/asf_inc/sec_wrapper.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef SEC_WRAPPER_H
-#define SEC_WRAPPER_H
-
-int sec_init_key (unsigned char *nKey, unsigned int nKey_len,
- unsigned char *eKey, unsigned int eKey_len);
-int sec_hash(unsigned char *data_buf, unsigned int data_len,
- unsigned char *hash_buf, unsigned int hash_len);
-int sec_verify (unsigned char* data_buf, unsigned int data_len,
- unsigned char* sig_buf, unsigned int sig_len);
-
-#endif
-
diff --git a/drivers/misc/mediatek/masp/asf/auth/sec_wrapper.c b/drivers/misc/mediatek/masp/asf/auth/sec_wrapper.c
deleted file mode 100644
index 359415325..000000000
--- a/drivers/misc/mediatek/masp/asf/auth/sec_wrapper.c
+++ /dev/null
@@ -1,24 +0,0 @@
-extern int lib_init_key (unsigned char *nKey, unsigned int nKey_len, unsigned char *eKey, unsigned int eKey_len);
-extern int lib_verify (unsigned char* data_buf, unsigned int data_len, unsigned char* sig_buf, unsigned int sig_len);
-extern int lib_hash (unsigned char* data_buf, unsigned int data_len, unsigned char* hash_buf, unsigned int hash_len);
-
-int sec_init_key (unsigned char *nKey, unsigned int nKey_len,
- unsigned char *eKey, unsigned int eKey_len)
-{
- return lib_init_key(nKey, nKey_len, eKey, eKey_len);
-}
-
-int sec_hash(unsigned char *data_buf, unsigned int data_len,
- unsigned char *hash_buf, unsigned int hash_len)
-{
- return lib_hash(data_buf, data_len, hash_buf, hash_len);
-}
-
-int sec_verify (unsigned char *data_buf, unsigned int data_len,
- unsigned char *sig_buf, unsigned int sig_len)
-{
- return lib_verify(data_buf, data_len, sig_buf, sig_len);
-}
-
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/alg_aes_export.c b/drivers/misc/mediatek/masp/asf/core/alg_aes_export.c
deleted file mode 100644
index d17102378..000000000
--- a/drivers/misc/mediatek/masp/asf/core/alg_aes_export.c
+++ /dev/null
@@ -1,173 +0,0 @@
-#include "sec_osal_light.h"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-
-/**************************************************************************
- * AES FUNCTION
- **************************************************************************/
-#include "sec_aes.h"
-/* legacy function used for W1128/32 MP */
-#include "aes_legacy.h"
-/* standard operation aes function used for W1150 MP */
-#include "aes_so.h"
-
-/**************************************************************************
- * DEFINITIONS
- **************************************************************************/
-#define MOD "AES_EXPORT"
-
-/**************************************************************************
- * MACRO
- **************************************************************************/
-#define SMSG printk
-
-/**************************************************************************
- * GLOBAL VARIABLE
- **************************************************************************/
-/* using W1128/32 mP solution by default */
-AES_VER g_ver = AES_VER_LEGACY;
-
-/**************************************************************************
- * LIBRARY EXPORT FUNCTION - ENCRYPTION
- **************************************************************************/
-int lib_aes_enc(uchar* input_buf, uint32 input_len, uchar* output_buf, uint32 output_len)
-{
-
- switch (g_ver)
- {
- case AES_VER_LEGACY:
- if(0 != aes_legacy_enc(input_buf,input_len,output_buf,output_len))
- {
- goto _err;
- }
- break;
-
- case AES_VER_SO:
- if(0 != aes_so_enc(input_buf,input_len,output_buf,output_len))
- {
- goto _err;
- }
- break;
-
- default:
- SMSG("[%s] Invalid Ver\n",MOD);
- goto _err;
- }
-
- return 0;
-
-_err:
-
- return -1;
-
-}
-
-/**************************************************************************
- * LIBRARY EXPORT FUNCTION - DECRYPTION
- **************************************************************************/
-int lib_aes_dec(uchar* input_buf, uint32 input_len, uchar* output_buf, uint32 output_len)
-{
- switch (g_ver)
- {
- case AES_VER_LEGACY:
- if(0 != aes_legacy_dec(input_buf,input_len,output_buf,output_len))
- {
- goto _err;
- }
- break;
-
- case AES_VER_SO:
- if(0 != aes_so_dec(input_buf,input_len,output_buf,output_len))
- {
- goto _err;
- }
- break;
-
- default:
- SMSG("[%s] Invalid Ver\n",MOD);
- goto _err;
- }
-
- return 0;
-
-_err:
-
- return -1;
-
-}
-
-/**************************************************************************
- * LIBRARY EXPORT FUNCTION - KEY INITIALIZATION
- **************************************************************************/
-int lib_aes_init_key(uchar* key_buf, uint32 key_len, AES_VER ver)
-{
- switch (ver)
- {
- case AES_VER_LEGACY:
- g_ver = AES_VER_LEGACY;
- SMSG("\n[%s] Legacy\n",MOD);
- if(0 != aes_legacy_init_key(key_buf,key_len))
- {
- goto _err;
- }
- break;
-
- case AES_VER_SO:
- g_ver = AES_VER_SO;
- SMSG("\n[%s] SO\n",MOD);
- if(0 != aes_so_init_key(key_buf,key_len))
- {
- goto _err;
- }
- break;
-
- default:
- SMSG("\n[%s] Invalid Ver\n",MOD);
- goto _err;
- }
-
- return 0;
-
-_err:
-
- return -1;
-}
-
-int lib_aes_init_vector(AES_VER ver)
-{
- switch (ver)
- {
- case AES_VER_LEGACY:
- g_ver = AES_VER_LEGACY;
- SMSG("[%s] Legacy(V)\n",MOD);
- if(0 != aes_legacy_init_vector())
- {
- goto _err;
- }
- break;
-
- case AES_VER_SO:
- g_ver = AES_VER_SO;
- SMSG("[%s] SO(V)\n",MOD);
- if(0 != aes_so_init_vector())
- {
- goto _err;
- }
- break;
-
- default:
- SMSG("[%s] Invalid Ver(V)\n",MOD);
- goto _err;
- }
-
- return 0;
-
-_err:
- return -1;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/alg_aes_legacy.c b/drivers/misc/mediatek/masp/asf/core/alg_aes_legacy.c
deleted file mode 100644
index c12fdbcb8..000000000
--- a/drivers/misc/mediatek/masp/asf/core/alg_aes_legacy.c
+++ /dev/null
@@ -1,535 +0,0 @@
-#include "sec_osal_light.h"
-#include <mach/sec_osal.h>
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-/**************************************************************************
- * MACRO
- **************************************************************************/
-#define SMSG printk
-
-/**************************************************************************
- * DEFINITIONS
- **************************************************************************/
-#define MOD "AES_LEGACY"
-#define CIPHER_BLOCK_SIZE (16)
-
-/**************************************************************************
- * COMPILE ASSERT
- **************************************************************************/
-#define COMPILE_ASSERT(condition) ((void)sizeof(char[1 - 2*!!!(condition)]))
-
-
-/**************************************************************************
- * AES FUNCTION
- **************************************************************************/
-
-#define AES_RPOL 0x011b
-#define AES_GEN 0x03
-#define AES_SBOX_CC 0x63
-#define KEY_128 (128/8)
-#define KEY_192 (192/8)
-#define KEY_256 (256/8)
-
-#define a_mul(a, b) ((a)&&(b)?g_a_ilogt[(g_a_logt[(a)]+g_a_logt[(b)])%0xff]:0)
-#define a_inv(a) ((a)?g_a_ilogt[0xff-g_a_logt[(a)]]:0)
-
-uchar g_a_logt[256], g_a_ilogt[256];
-uchar g_a_sbox[256], g_a_isbox[256];
-
-typedef struct {
-
- uchar state[4][4];
- int kcol;
- uint32 r;
- ulong keysched[0];
-
-} a_ctx_t;
-
-/**************************************************************************
- * GLOBAL VARIABLES
- **************************************************************************/
-static a_ctx_t *ctx;
-
-
-/**************************************************************************
- * EXTERNAL FUNCTION
- **************************************************************************/
-extern void * mcpy(void *dest, const void *src, int cnt);
-
-/**************************************************************************
- * INTERNAL FUNCTION
- **************************************************************************/
-void a_init(void);
-a_ctx_t *a_alloc_ctx(uchar *key, uint32 keyLen);
-inline ulong a_subword(ulong w);
-inline ulong a_rotword(ulong w);
-void a_key_exp(a_ctx_t *ctx);
-
-inline uchar a_mul_manual(uchar a, uchar b); // use a_mul instead
-void a_subbytes(a_ctx_t *ctx);
-void a_shi_row(a_ctx_t *ctx);
-void a_mix_col(a_ctx_t *ctx);
-void a_add_key(a_ctx_t *ctx, int round);
-
-void a_sub_b(a_ctx_t *ctx);
-void a_inv_shi_row(a_ctx_t *ctx);
-void a_inv_mix_col(a_ctx_t *ctx);
-
-static void a_enc(a_ctx_t *ctx, uchar input[16], uchar output[16]);
-static void a_dec(a_ctx_t *ctx, uchar input[16], uchar output[16]);
-void a_free_ctx(a_ctx_t *ctx);
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-a_ctx_t *a_alloc_ctx(uchar *key, uint32 keyLen)
-{
- a_ctx_t *ctx;
- uint32 r;
- uint32 ks_size;
-
- switch(keyLen)
- {
- case 16:
- r = 10;
- break;
-
- case 24:
- r = 12;
- break;
-
- case 32:
- r = 14;
- break;
-
- default:
- return NULL;
- }
-
- ks_size = 4*(r+1)*sizeof(ulong);
-
- ctx = osal_kmalloc(sizeof(a_ctx_t)+ks_size);
-
- if(ctx)
- {
-
- ctx->r = r;
- ctx->kcol = keyLen/4;
- memcpy(ctx->keysched, key, keyLen);
- ctx->keysched[43] = 0;
- a_key_exp(ctx);
-
- }
-
- return ctx;
-
-}
-
-inline ulong a_subword(ulong w)
-{
-
- return g_a_sbox[w & 0x000000ff] |
- (g_a_sbox[(w & 0x0000ff00) >> 8] << 8) |
- (g_a_sbox[(w & 0x00ff0000) >> 16] << 16) |
- (g_a_sbox[(w & 0xff000000) >> 24] << 24);
-
-}
-
-inline ulong a_rotword(ulong w)
-{
- return ((w & 0x000000ff) << 24) |
-
- ((w & 0x0000ff00) >> 8) |
- ((w & 0x00ff0000) >> 8) |
- ((w & 0xff000000) >> 8);
-
-}
-
-void a_key_exp(a_ctx_t *ctx)
-{
- ulong temp;
- ulong rcon;
- register int i;
-
- rcon = 0x00000001;
- for(i = ctx->kcol; i < (4*(ctx->r+1)); i++)
- {
-
- temp = ctx->keysched[i-1];
-
- if(!(i%ctx->kcol))
- {
-
- temp = a_subword(a_rotword(temp)) ^ rcon;
- rcon = a_mul(rcon, 2);
-
- }
- else if(ctx->kcol > 6 && i%ctx->kcol == 4)
- {
- temp = a_subword(temp);
- }
-
- ctx->keysched[i] = ctx->keysched[i-ctx->kcol] ^ temp;
-
- }
-
-}
-
-inline uchar a_mul_manual(uchar a, uchar b)
-{
- register unsigned short ac;
- register uchar ret;
- ac = a;
- ret = 0;
-
- while(b)
- {
- if(b & 0x01)
- {
- ret ^= ac;
- }
-
- ac <<= 1;
- b >>= 1;
-
- if(ac & 0x0100)
- {
- ac ^= AES_RPOL;
- }
- }
-
- return ret;
-}
-
-void a_subbytes(a_ctx_t *ctx)
-{
- int i;
-
- for(i = 0; i < 16; i++)
- {
- int x, y;
- x = i & 0x03;
- y = i >> 2;
- ctx->state[x][y] = g_a_sbox[ctx->state[x][y]];
- }
-}
-
-void a_shi_row(a_ctx_t *ctx)
-{
- uchar nstate[4][4];
- int i;
-
- for(i = 0; i < 16; i++)
- {
- int x, y;
- x = i & 0x03;
- y = i >> 2;
- nstate[x][y] = ctx->state[x][(y+x) & 0x03];
- }
- memcpy(ctx->state, nstate, sizeof(ctx->state));
-}
-
-void a_mix_col(a_ctx_t *ctx)
-{
- uchar nstate[4][4];
- int i;
-
- for(i = 0; i < 4; i++)
- {
- nstate[0][i] = a_mul(0x02, ctx->state[0][i]) ^
- a_mul(0x03, ctx->state[1][i]) ^
- ctx->state[2][i] ^
- ctx->state[3][i];
- nstate[1][i] = ctx->state[0][i] ^
- a_mul(0x02, ctx->state[1][i]) ^
- a_mul(0x03, ctx->state[2][i]) ^
- ctx->state[3][i];
- nstate[2][i] = ctx->state[0][i] ^
- ctx->state[1][i] ^
- a_mul(0x02, ctx->state[2][i]) ^
- a_mul(0x03, ctx->state[3][i]);
- nstate[3][i] = a_mul(0x03, ctx->state[0][i]) ^
- ctx->state[1][i] ^
- ctx->state[2][i] ^
- a_mul(0x02, ctx->state[3][i]);
- }
-
- memcpy(ctx->state, nstate, sizeof(ctx->state));
-}
-
-void a_add_key(a_ctx_t *ctx, int round)
-{
- int i;
-
- for(i = 0; i < 16; i++)
- {
- int x, y;
- x = i & 0x03;
- y = i >> 2;
- ctx->state[x][y] = ctx->state[x][y] ^
- ((ctx->keysched[round*4+y] & (0xff << (x*8))) >> (x*8));
- }
-}
-
-void a_inv_shi_row(a_ctx_t *ctx)
-{
- uchar nstate[4][4];
-
- int i;
-
- for(i = 0; i < 16; i++)
- {
- int x, y;
- x = i & 0x03;
- y = i >> 2;
- nstate[x][(y+x) & 0x03] = ctx->state[x][y];
- }
-
- memcpy(ctx->state, nstate, sizeof(ctx->state));
-}
-
-void a_sub_b(a_ctx_t *ctx)
-{
- int i;
-
- for(i = 0; i < 16; i++)
- {
- int x, y;
- x = i & 0x03;
- y = i >> 2;
- ctx->state[x][y] = g_a_isbox[ctx->state[x][y]];
- }
-}
-
-void a_inv_mix_col(a_ctx_t *ctx)
-{
- uchar nstate[4][4];
- int i;
-
- for(i = 0; i < 4; i++)
- {
- nstate[0][i] = a_mul(0x0e, ctx->state[0][i]) ^
- a_mul(0x0b, ctx->state[1][i]) ^
- a_mul(0x0d, ctx->state[2][i]) ^
- a_mul(0x09, ctx->state[3][i]);
- nstate[1][i] = a_mul(0x09, ctx->state[0][i]) ^
- a_mul(0x0e, ctx->state[1][i]) ^
- a_mul(0x0b, ctx->state[2][i]) ^
- a_mul(0x0d, ctx->state[3][i]);
- nstate[2][i] = a_mul(0x0d, ctx->state[0][i]) ^
- a_mul(0x09, ctx->state[1][i]) ^
- a_mul(0x0e, ctx->state[2][i]) ^
- a_mul(0x0b, ctx->state[3][i]);
- nstate[3][i] = a_mul(0x0b, ctx->state[0][i]) ^
- a_mul(0x0d, ctx->state[1][i]) ^
- a_mul(0x09, ctx->state[2][i]) ^
- a_mul(0x0e, ctx->state[3][i]);
- }
-
- memcpy(ctx->state, nstate, sizeof(ctx->state));
-}
-
-static void a_dec(a_ctx_t *ctx, uchar input[16], uchar output[16])
-{
- int i;
-
- for(i = 0; i < 16; i++)
- {
- ctx->state[i & 0x03][i >> 2] = input[i];
- }
-
- a_add_key(ctx, ctx->r);
-
- for(i = ctx->r-1; i >= 1; i--)
- {
- a_inv_shi_row(ctx);
- a_sub_b(ctx);
- a_add_key(ctx, i);
- a_inv_mix_col(ctx);
- }
-
- a_inv_shi_row(ctx);
- a_sub_b(ctx);
- a_add_key(ctx, 0);
-
- for(i = 0; i < 16; i++)
- {
- output[i] = ctx->state[i & 0x03][i >> 2];
- }
-}
-
-static void a_enc(a_ctx_t *ctx, uchar input[16], uchar output[16])
-{
- int i;
-
- for(i = 0; i < 16; i++)
- {
- ctx->state[i & 0x03][i >> 2] = input[i];
- }
-
- a_add_key(ctx, 0);
-
- for(i = 1; i < ctx->r; i++)
- {
- a_subbytes(ctx);
- a_shi_row(ctx);
- a_mix_col(ctx);
- a_add_key(ctx, i);
- }
- a_subbytes(ctx);
- a_shi_row(ctx);
- a_add_key(ctx, ctx->r);
-
- for(i = 0; i < 16; i++)
- {
- output[i] = ctx->state[i & 0x03][i >> 2];
- }
-}
-
-void a_free_ctx(a_ctx_t *ctx)
-{
- osal_kfree(ctx);
-}
-
-void init_aes(void)
-{
- int i;
- uchar gen;
-
- gen = 1;
-
- for(i = 0; i < 0xff; i++)
- {
- g_a_logt[gen] = i;
- g_a_ilogt[i] = gen;
- gen = a_mul_manual(gen, AES_GEN);
-
- }
-
- for(i = 0; i <= 0xff; i++)
- {
-
- char bi;
- uchar inv = a_inv(i);
-
- g_a_sbox[i] = 0;
-
- for(bi = 0; bi < 8; bi++)
- {
-
- g_a_sbox[i] |= ((inv & (1<<bi)?1:0)
-
- ^ (inv & (1 << ((bi+4) & 7))?1:0)
- ^ (inv & (1 << ((bi+5) & 7))?1:0)
- ^ (inv & (1 << ((bi+6) & 7))?1:0)
- ^ (inv & (1 << ((bi+7) & 7))?1:0)
- ^ (AES_SBOX_CC & (1 << bi)?1:0)
-
- ) << bi;
-
- }
-
- g_a_isbox[g_a_sbox[i]] = i;
-
- }
-
- g_a_sbox[1] = 0x7c;
- g_a_isbox[0x7c] = 1;
- g_a_isbox[0x63] = 0;
-
-}
-
-/**************************************************************************
- * LEGACY FUNCTION - ENCRYPTION
- **************************************************************************/
-int aes_legacy_enc(uchar* input_buf, uint32 input_len, uchar* output_buf, uint32 output_len)
-{
- uint32 i = 0;
-
- if (input_len != output_len)
- {
- SMSG("[%s] error, input len should be equal to output len\n",MOD);
- return -1;
- }
-
- if (0 != input_len % CIPHER_BLOCK_SIZE)
- {
- SMSG("[%s] error, input len should be mutiple of %d bytes\n",MOD,CIPHER_BLOCK_SIZE);
- return -1;
- }
-
- for (i = 0; i!=input_len ; i+=CIPHER_BLOCK_SIZE)
- {
- a_enc(ctx, input_buf+i, output_buf+i);
- }
- return 0;
-}
-
-/**************************************************************************
- * LEGACY FUNCTION - DECRYPTION
- **************************************************************************/
-int aes_legacy_dec(uchar* input_buf, uint32 input_len, uchar* output_buf, uint32 output_len)
-{
- uint32 i = 0;
-
- if (input_len != output_len)
- {
- SMSG("[%s] error, input len should be equal to output len\n",MOD);
- return -1;
- }
-
- if (0 != input_len % CIPHER_BLOCK_SIZE)
- {
- SMSG("[%s] error, input len should be mutiple of %d bytes\n",MOD,CIPHER_BLOCK_SIZE);
- return -1;
- }
-
- for (i = 0; i!=input_len ; i+=CIPHER_BLOCK_SIZE)
- {
- a_dec(ctx, input_buf+i, output_buf+i);
- }
- return 0;
-}
-
-/**************************************************************************
- * LEGACY FUNCTION - KEY INITIALIZATION
- **************************************************************************/
-int aes_legacy_init_key(uchar* key_buf, uint32 key_len)
-{
- uchar key[KEY_256] = {0};
-
- if (KEY_256 != key_len)
- {
- SMSG("[%s] key size error (%d) (should be %d bytes)\n",MOD,key_len,KEY_256);
- return -1;
- }
-
- mcpy(key,key_buf,KEY_256);
- init_aes();
- ctx = a_alloc_ctx(key, sizeof(key));
-
- if(!ctx)
- {
- SMSG("[%s] aes alloc ctx fail\n",MOD);
- return -1;
- }
-
- return 0;
-
-}
-
-/**************************************************************************
- * LEGACY FUNCTION - VECTOR INITIALIZATION
- **************************************************************************/
-int aes_legacy_init_vector(void)
-{
- init_aes();
-
- return 0;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/alg_aes_so.c b/drivers/misc/mediatek/masp/asf/core/alg_aes_so.c
deleted file mode 100644
index 46e0eaf5b..000000000
--- a/drivers/misc/mediatek/masp/asf/core/alg_aes_so.c
+++ /dev/null
@@ -1,767 +0,0 @@
-#include "sec_osal_light.h"
-#include "sec_log.h"
-#include "aes_so.h"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-/**************************************************************************
- * DEFINITIONS
- **************************************************************************/
-#define MOD "AES_SO"
-#define CIPHER_BLOCK_SIZE (16)
-
-#define CT_AES128_LEN 16 // 16B (AES128)
-#define CT_AES192_LEN 24 // 24B (AES192)
-#define CT_AES256_LEN 32 // 32B (AES256)
-
-/**************************************************************************
- * EXTERNAL FUNCTION
- **************************************************************************/
-extern void * mcpy(void *dest, const void *src, int cnt);
-
-/**************************************************************************
- * INTERNAL DEFINIITION
- **************************************************************************/
-#define MASK 0xFF
-#define T_SZ 256
-
-#define EXP(x,y) (x^y)
-
-/**************************************************************************
- * GLOBAL VARIABLES
- **************************************************************************/
-uint32 aes_key_len = 0;
-
-static uchar FS[T_SZ];
-static ulong FT0[T_SZ];
-static ulong FT1[T_SZ];
-static ulong FT2[T_SZ];
-static ulong FT3[T_SZ];
-
-static uchar RS[T_SZ];
-static ulong RT0[T_SZ];
-static ulong RT1[T_SZ];
-static ulong RT2[T_SZ];
-static ulong RT3[T_SZ];
-
-static ulong RCON[10];
-
-static int aes_init_done = 0;
-
-static int pow[T_SZ];
-static int log[T_SZ];
-
-#define A_F(X0,X1,X2,X3,Y0,Y1,Y2,Y3) \
-{ \
- X0 = *RK++ ^ FT0[ ( Y0 ) & MASK ] ^ \
- FT1[ ( Y1 >> 8 ) & MASK ] ^ \
- FT2[ ( Y2 >> 16 ) & MASK ] ^ \
- FT3[ ( Y3 >> 24 ) & MASK ]; \
- \
- X1 = *RK++ ^ FT0[ ( Y1 ) & MASK ] ^ \
- FT1[ ( Y2 >> 8 ) & MASK ] ^ \
- FT2[ ( Y3 >> 16 ) & MASK ] ^ \
- FT3[ ( Y0 >> 24 ) & MASK ]; \
- \
- X2 = *RK++ ^ FT0[ ( Y2 ) & MASK ] ^ \
- FT1[ ( Y3 >> 8 ) & MASK ] ^ \
- FT2[ ( Y0 >> 16 ) & MASK ] ^ \
- FT3[ ( Y1 >> 24 ) & MASK ]; \
- \
- X3 = *RK++ ^ FT0[ ( Y3 ) & MASK ] ^ \
- FT1[ ( Y0 >> 8 ) & MASK ] ^ \
- FT2[ ( Y1 >> 16 ) & MASK ] ^ \
- FT3[ ( Y2 >> 24 ) & MASK ]; \
-}
-
-#define A_R(X0,X1,X2,X3,Y0,Y1,Y2,Y3) \
-{ \
- X0 = *RK++ ^ RT0[ ( Y0 ) & MASK ] ^ \
- RT1[ ( Y3 >> 8 ) & MASK ] ^ \
- RT2[ ( Y2 >> 16 ) & MASK ] ^ \
- RT3[ ( Y1 >> 24 ) & MASK ]; \
- \
- X1 = *RK++ ^ RT0[ ( Y1 ) & MASK ] ^ \
- RT1[ ( Y0 >> 8 ) & MASK ] ^ \
- RT2[ ( Y3 >> 16 ) & MASK ] ^ \
- RT3[ ( Y2 >> 24 ) & MASK ]; \
- \
- X2 = *RK++ ^ RT0[ ( Y2 ) & MASK ] ^ \
- RT1[ ( Y1 >> 8 ) & MASK ] ^ \
- RT2[ ( Y0 >> 16 ) & MASK ] ^ \
- RT3[ ( Y3 >> 24 ) & MASK ]; \
- \
- X3 = *RK++ ^ RT0[ ( Y3 ) & MASK ] ^ \
- RT1[ ( Y2 >> 8 ) & MASK ] ^ \
- RT2[ ( Y1 >> 16 ) & MASK ] ^ \
- RT3[ ( Y0 >> 24 ) & MASK ]; \
-}
-
-
-/**************************************************************************
- * MTK SECRET
- **************************************************************************/
-static uint32 g_AES_IV[4]= {
- 0x6c8d3259, 0x86911412, 0x55975412, 0x6c8d3257
-};
-
-static uint32 g_AES_IV_TEMP[4]= {
- 0x0,0x0,0x0,0x0
-};
-
-uint32 g_AES_Key[4] = {
- 0x0, 0x0, 0x0, 0x0
-};
-
-
-/**************************************************************************
- * INTERNAL VARIABLES
- **************************************************************************/
-a_ctx aes;
-
-#ifndef G_U_LE
-#define G_U_LE(n,b,i) \
-{ \
- (n) = ( (ulong) (b)[(i) ] ) \
- | ( (ulong) (b)[(i) + 1] << 8 ) \
- | ( (ulong) (b)[(i) + 2] << 16 ) \
- | ( (ulong) (b)[(i) + 3] << 24 ); \
-}
-#endif
-
-#ifndef P_U_LE
-#define P_U_LE(n,b,i) \
-{ \
- (b)[(i) ] = (uchar) ( (n) ); \
- (b)[(i) + 1] = (uchar) ( (n) >> 8 ); \
- (b)[(i) + 2] = (uchar) ( (n) >> 16 ); \
- (b)[(i) + 3] = (uchar) ( (n) >> 24 ); \
-}
-#endif
-
-#define ROTL8(x) ( ( x << 8 ) & 0xFFFFFFFF ) | ( x >> 24 )
-#define XTIME(x) ( ( x << 1 ) ^ ( ( x & 0x80 ) ? 0x1B : 0x00 ) )
-#define MUL(x,y) ( ( x && y ) ? pow[(log[x]+log[y]) % 255] : 0 )
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-static void a_gen_tables( void )
-{
- int i, x, y, z;
-
- for( i = 0, x = 1; i < T_SZ; i++ )
- {
- pow[i] = x;
- log[x] = i;
- x = ( x ^ XTIME( x ) ) & MASK;
- }
-
- for( i = 0, x = 1; i < 10; i++ )
- {
- RCON[i] = (ulong) x;
- x = XTIME( x ) & MASK;
- }
-
- FS[0x00] = 0x63;
- RS[0x63] = 0x00;
-
- for( i = 1; i < T_SZ; i++ )
- {
- x = pow[255 - log[i]];
-
- y = x; y = ( (y << 1) | (y >> 7) ) & MASK;
- x ^= y; y = ( (y << 1) | (y >> 7) ) & MASK;
- x ^= y; y = ( (y << 1) | (y >> 7) ) & MASK;
- x ^= y; y = ( (y << 1) | (y >> 7) ) & MASK;
- x ^= y ^ 0x63;
-
- FS[i] = (uchar) x;
- RS[x] = (uchar) i;
- }
-
- for( i = 0; i < T_SZ; i++ )
- {
- x = FS[i];
- y = XTIME( x ) & MASK;
- z = ( y ^ x ) & MASK;
-
- FT0[i] = ( (ulong) y ) ^
- ( (ulong) x << 8 ) ^
- ( (ulong) x << 16 ) ^
- ( (ulong) z << 24 );
-
- FT1[i] = ROTL8( FT0[i] );
- FT2[i] = ROTL8( FT1[i] );
- FT3[i] = ROTL8( FT2[i] );
-
- x = RS[i];
-
- RT0[i] = ( (ulong) MUL( 0x0E, x ) ) ^
- ( (ulong) MUL( 0x09, x ) << 8 ) ^
- ( (ulong) MUL( 0x0D, x ) << 16 ) ^
- ( (ulong) MUL( 0x0B, x ) << 24 );
-
- RT1[i] = ROTL8( RT0[i] );
- RT2[i] = ROTL8( RT1[i] );
- RT3[i] = ROTL8( RT2[i] );
- }
-}
-
-
-int a_enc (a_ctx *ctx, const uchar *key, uint32 keysize)
-{
- uint32 i;
- ulong *RK;
-
- if( aes_init_done == 0 )
- {
- a_gen_tables();
- aes_init_done = 1;
- }
-
- switch( keysize )
- {
- case 128:
- ctx->nr = 10;
- break;
- case 192:
- ctx->nr = 12;
- break;
- case 256:
- ctx->nr = 14;
- break;
- default :
- return( -1 );
- }
-
- ctx->rk = RK = ctx->buf;
-
- for( i = 0; i < (keysize >> 5); i++ )
- {
- G_U_LE( RK[i], key, i << 2 );
- }
-
- switch( ctx->nr )
- {
- case 10:
-
- for( i = 0; i < 10; i++, RK += 4 )
- {
- RK[4] = RK[0] ^ RCON[i] ^
- ( (ulong) FS[ ( RK[3] >> 8 ) & MASK ] ) ^
- ( (ulong) FS[ ( RK[3] >> 16 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( RK[3] >> 24 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( RK[3] ) & MASK ] << 24 );
-
- RK[5] = EXP(RK[1],RK[4]);
- RK[6] = EXP(RK[2],RK[5]);
- RK[7] = EXP(RK[3],RK[6]);
- }
- break;
-
- case 12:
-
- for( i = 0; i < 8; i++, RK += 6 )
- {
- RK[6] = RK[0] ^ RCON[i] ^
- ( (ulong) FS[ ( RK[5] >> 8 ) & MASK ] ) ^
- ( (ulong) FS[ ( RK[5] >> 16 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( RK[5] >> 24 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( RK[5] ) & MASK ] << 24 );
-
- RK[7] = EXP(RK[1],RK[6]);
- RK[8] = EXP(RK[2],RK[7]);
- RK[9] = EXP(RK[3],RK[8]);
- RK[10] = EXP(RK[4],RK[9]);
- RK[11] = EXP(RK[5],RK[10]);
- }
- break;
-
- case 14:
-
- for( i = 0; i < 7; i++, RK += 8 )
- {
- RK[8] = RK[0] ^ RCON[i] ^
- ( (ulong) FS[ ( RK[7] >> 8 ) & MASK ] ) ^
- ( (ulong) FS[ ( RK[7] >> 16 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( RK[7] >> 24 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( RK[7] ) & MASK ] << 24 );
-
- RK[9] = EXP(RK[1],RK[8]);
- RK[10] = EXP(RK[2],RK[9]);
- RK[11] = EXP(RK[3],RK[10]);
-
- RK[12] = RK[4] ^
- ( (ulong) FS[ ( RK[11] ) & MASK ] ) ^
- ( (ulong) FS[ ( RK[11] >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( RK[11] >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( RK[11] >> 24 ) & MASK ] << 24 );
-
- RK[13] = EXP(RK[5],RK[12]);
- RK[14] = EXP(RK[6],RK[13]);
- RK[15] = EXP(RK[7],RK[14]);
- }
- break;
-
- default:
-
- break;
- }
-
- return( 0 );
-}
-
-int a_dec (a_ctx *ctx, const uchar *key, uint32 keysize)
-{
- int i, j;
- a_ctx cty;
- ulong *RK;
- ulong *SK;
- int ret;
-
- switch( keysize )
- {
- case 128:
- ctx->nr = 10;
- break;
- case 192:
- ctx->nr = 12;
- break;
- case 256:
- ctx->nr = 14;
- break;
- default :
- return( -1 );
- }
-
- ctx->rk = RK = ctx->buf;
-
- ret = a_enc( &cty, key, keysize );
- if( ret != 0 )
- return( ret );
-
- SK = cty.rk + cty.nr * 4;
-
- *RK++ = *SK++;
- *RK++ = *SK++;
- *RK++ = *SK++;
- *RK++ = *SK++;
-
- for( i = ctx->nr - 1, SK -= 8; i > 0; i--, SK -= 8 )
- {
- for( j = 0; j < 4; j++, SK++ )
- {
- *RK++ = RT0[ FS[ ( *SK ) & MASK ] ] ^
- RT1[ FS[ ( *SK >> 8 ) & MASK ] ] ^
- RT2[ FS[ ( *SK >> 16 ) & MASK ] ] ^
- RT3[ FS[ ( *SK >> 24 ) & MASK ] ];
- }
- }
-
- *RK++ = *SK++;
- *RK++ = *SK++;
- *RK++ = *SK++;
- *RK++ = *SK++;
-
- memset( &cty, 0, sizeof( a_ctx ) );
-
- return( 0 );
-}
-
-int a_crypt_ecb( a_ctx *ctx,
- int mode,
- const uchar input[16],
- uchar output[16] )
-{
- int i;
- ulong *RK, X0, X1, X2, X3, Y0, Y1, Y2, Y3;
-
- RK = ctx->rk;
-
- G_U_LE( X0, input, 0 ); X0 ^= *RK++;
- G_U_LE( X1, input, 4 ); X1 ^= *RK++;
- G_U_LE( X2, input, 8 ); X2 ^= *RK++;
- G_U_LE( X3, input, 12 ); X3 ^= *RK++;
-
- /* ----------- */
- /* AES_DECRYPT */
- /* ----------- */
- if( mode == AES_DECRYPT )
- {
- for( i = (ctx->nr >> 1) - 1; i > 0; i-- )
- {
- A_R( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );
- A_R( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );
- }
-
- A_R( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );
-
- X0 = *RK++ ^ \
- ( (ulong) RS[ ( Y0 ) & MASK ] ) ^
- ( (ulong) RS[ ( Y3 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) RS[ ( Y2 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) RS[ ( Y1 >> 24 ) & MASK ] << 24 );
-
- X1 = *RK++ ^ \
- ( (ulong) RS[ ( Y1 ) & MASK ] ) ^
- ( (ulong) RS[ ( Y0 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) RS[ ( Y3 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) RS[ ( Y2 >> 24 ) & MASK ] << 24 );
-
- X2 = *RK++ ^ \
- ( (ulong) RS[ ( Y2 ) & MASK ] ) ^
- ( (ulong) RS[ ( Y1 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) RS[ ( Y0 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) RS[ ( Y3 >> 24 ) & MASK ] << 24 );
-
- X3 = *RK++ ^ \
- ( (ulong) RS[ ( Y3 ) & MASK ] ) ^
- ( (ulong) RS[ ( Y2 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) RS[ ( Y1 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) RS[ ( Y0 >> 24 ) & MASK ] << 24 );
- }
- else /* AES_ENCRYPT */
- {
- for( i = (ctx->nr >> 1) - 1; i > 0; i-- )
- {
- A_F( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );
- A_F( X0, X1, X2, X3, Y0, Y1, Y2, Y3 );
- }
-
- A_F( Y0, Y1, Y2, Y3, X0, X1, X2, X3 );
-
- X0 = *RK++ ^ \
- ( (ulong) FS[ ( Y0 ) & MASK ] ) ^
- ( (ulong) FS[ ( Y1 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( Y2 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( Y3 >> 24 ) & MASK ] << 24 );
-
- X1 = *RK++ ^ \
- ( (ulong) FS[ ( Y1 ) & MASK ] ) ^
- ( (ulong) FS[ ( Y2 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( Y3 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( Y0 >> 24 ) & MASK ] << 24 );
-
- X2 = *RK++ ^ \
- ( (ulong) FS[ ( Y2 ) & MASK ] ) ^
- ( (ulong) FS[ ( Y3 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( Y0 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( Y1 >> 24 ) & MASK ] << 24 );
-
- X3 = *RK++ ^ \
- ( (ulong) FS[ ( Y3 ) & MASK ] ) ^
- ( (ulong) FS[ ( Y0 >> 8 ) & MASK ] << 8 ) ^
- ( (ulong) FS[ ( Y1 >> 16 ) & MASK ] << 16 ) ^
- ( (ulong) FS[ ( Y2 >> 24 ) & MASK ] << 24 );
- }
-
- P_U_LE( X0, output, 0 );
- P_U_LE( X1, output, 4 );
- P_U_LE( X2, output, 8 );
- P_U_LE( X3, output, 12 );
-
- return( 0 );
-}
-
-int a_crypt_cbc( a_ctx *ctx,
- int mode,
- size_t length,
- uchar iv[16],
- const uchar *input,
- uchar *output )
-{
- int i;
- uchar temp[16];
-
- if( length % 16 )
- return( -2 );
-
- if( mode == AES_DECRYPT )
- {
- while( length > 0 )
- {
- memcpy( temp, input, 16 );
- a_crypt_ecb( ctx, mode, input, output );
-
- for( i = 0; i < 16; i++ )
- output[i] = (uchar)( output[i] ^ iv[i] );
-
- memcpy( iv, temp, 16 );
-
- input += 16;
- output += 16;
- length -= 16;
- }
- }
- else
- {
- while( length > 0 )
- {
- for( i = 0; i < 16; i++ )
- output[i] = (uchar)( input[i] ^ iv[i] );
-
- a_crypt_ecb( ctx, mode, output, output );
- memcpy( iv, output, 16 );
-
- input += 16;
- output += 16;
- length -= 16;
-
- }
- }
-
- return( 0 );
-}
-
-/**************************************************************************
- * SO FUNCTION - ENCRYPTION
- **************************************************************************/
-int aes_so_enc (uchar* ip_buf, uint32 ip_len, uchar* op_buf, uint32 op_len)
-{
- uint32 i = 0;
- uint32 ret = 0;
-
- if (ip_len != op_len)
- {
- SMSG(true,"[%s] error, ip len should be equal to op len\n",MOD);
- return -1;
- }
-
- if (0 != ip_len % CIPHER_BLOCK_SIZE)
- {
- SMSG(true,"[%s] error, ip len should be mutiple of %d bytes\n",MOD,CIPHER_BLOCK_SIZE);
- return -1;
- }
-
-
- if(0 == g_AES_Key[0])
- {
- SMSG(true,"[%s] Enc Key Is ZERO. Fail\n",MOD);
- goto _err;
- }
-
- ret = a_enc(&aes, (uchar*)g_AES_Key, aes_key_len*8);
-
- if (ret != 0)
- {
- SMSG(true,"a_enc error -%02X\n", -ret);
- goto _err;
- }
-
- for (i = 0; i!=ip_len ; i+=CIPHER_BLOCK_SIZE)
- {
- ret = a_crypt_cbc(&aes, AES_ENCRYPT, CIPHER_BLOCK_SIZE, (uchar*)g_AES_IV_TEMP, ip_buf + i, op_buf + i);
- if (ret != 0)
- {
- SMSG(true,"hairtunes: a_cbc error -%02X\n", -ret);
- goto _err;
- }
- }
-
- return 0;
-
-_err:
-
- return -1;
-}
-
-/**************************************************************************
- * SO FUNCTION - DECRYPTION
- **************************************************************************/
-int aes_so_dec (uchar* ip_buf, uint32 ip_len, uchar* op_buf, uint32 op_len)
-{
- uint32 i = 0;
- uint32 ret = 0;
-
- if (ip_len != op_len)
- {
- SMSG(true,"[%s] error, ip len should be equal to op len\n",MOD);
- return -1;
- }
-
- if (0 != ip_len % CIPHER_BLOCK_SIZE)
- {
- SMSG(true,"[%s] error, ip len should be mutiple of %d bytes\n",MOD,CIPHER_BLOCK_SIZE);
- return -1;
- }
-
- if(0 == g_AES_Key[0])
- {
- SMSG(true,"[%s] Dec Key Is ZERO. Fail\n",MOD);
- goto _err;
- }
-
- ret = a_dec(&aes, (uchar*)g_AES_Key, aes_key_len*8);
- if (ret != 0)
- {
- SMSG(true,"a_dec error -%02X\n", -ret);
- goto _err;
- }
-
- for (i = 0; i!=ip_len ; i+=CIPHER_BLOCK_SIZE)
- {
- ret = a_crypt_cbc(&aes, AES_DECRYPT, 0x10, (uchar*)g_AES_IV_TEMP, ip_buf + i, op_buf + i);
- if (ret != 0)
- {
- SMSG(true,"hairtunes: a_cbc error -%02X\n", -ret);
- goto _err;
- }
- }
-
- return 0;
-
-_err:
-
- return -1;
-
-}
-
-/**************************************************************************
- * SO FUNCTION - KEY INITIALIZATION
- **************************************************************************/
-/* WARNING ! this function is not the same as cipher tool */
-int aes_so_init_key (uchar* key_buf, uint32 key_len)
-{
- uint32 i = 0;
- uchar temp[CT_AES128_LEN*2];
- uint32 n = 0;
- uint32 val = 0;
- uchar c;
- int j = 0;
- uchar fmt_str[2] = {0};
-
-
- if(0 == key_buf)
- {
- SMSG(true,"[%s] Init Key Is ZERO. Fail\n",MOD);
- goto _err;
- }
-
- /* -------------------------------------------------- */
- /* check key length */
- /* -------------------------------------------------- */
- switch(key_len)
- {
- case CT_AES128_LEN:
- break;
- case CT_AES192_LEN:
- case CT_AES256_LEN:
- SMSG(true,"[%s] Only AES 128 is supported\n",MOD);
- goto _err;
- default:
- SMSG(true,"[%s] Len Invalid %d\n",MOD,key_len);
- goto _err;
- }
-
- aes_key_len = key_len;
-
- /* -------------------------------------------------- */
- /* copy key to temporarily buffer */
- /* -------------------------------------------------- */
- mcpy(temp,key_buf,CT_AES128_LEN*2);
-
- /* -------------------------------------------------- */
- /* revert string to accomodate OpenSSL format */
- /* -------------------------------------------------- */
- for(i=0;i<key_len*2;i+=8)
- {
- c = temp[i];
- temp[i] = temp[i+6];
- temp[i+6] = c;
- c = temp[i+1];
- temp[i+1] = temp[i+7];
- temp[i+7] = c;
-
- c = temp[i+2];
- temp[i+2] = temp[i+4];
- temp[i+4] = c;
- c = temp[i+3];
- temp[i+3] = temp[i+5];
- temp[i+5] = c;
- }
-
- /* -------------------------------------------------- */
- /* convert key value from string format to hex format */
- /* -------------------------------------------------- */
-
- i = 0;
- n = 0;
-
- while(n < key_len*2)
- {
-
- for(j=0; j<8; j++)
- {
- fmt_str[0] = temp[n+j];
- sscanf(fmt_str,"%x",&val);
- g_AES_Key[i] = g_AES_Key[i]*16;
- g_AES_Key[i] += val;
- }
-
- /* get next key value */
- i ++;
- n += 8;
- }
-
- /* -------------------------------------------------- */
- /* reinit IV */
- /* -------------------------------------------------- */
- for(i=0;i<4;i++)
- {
- g_AES_IV_TEMP[i] = g_AES_IV[i];
- }
-
- /* dump information for debugging */
- for(i=0; i<1; i++)
- {
- SMSG(true,"0x%x\n",g_AES_Key[i]);
- }
-
- for(i=0; i<1; i++)
- {
- SMSG(true,"0x%x\n",g_AES_IV_TEMP[i]);
- }
-
- return 0;
-
-_err:
-
- return -1;
-
-}
-
-/**************************************************************************
- * SO FUNCTION - VECTOR INITIALIZATION
- **************************************************************************/
-int aes_so_init_vector (void)
-{
- uint32 i = 0;
-
- /* -------------------------------------------------- */
- /* reinit IV */
- /* -------------------------------------------------- */
- for(i=0;i<4;i++)
- {
- g_AES_IV_TEMP[i] = g_AES_IV[i];
- }
-
- /* dump information for debugging */
- for(i=0; i<1; i++)
- {
- SMSG(true,"0x%x\n",g_AES_Key[i]);
- }
-
- for(i=0; i<1; i++)
- {
- SMSG(true,"0x%x\n",g_AES_IV_TEMP[i]);
- }
-
- return 0;
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/alg_sha1.c b/drivers/misc/mediatek/masp/asf/core/alg_sha1.c
deleted file mode 100644
index d5fb138da..000000000
--- a/drivers/misc/mediatek/masp/asf/core/alg_sha1.c
+++ /dev/null
@@ -1,276 +0,0 @@
-#include "sec_osal_light.h"
-#include "sec_cust_struct.h"
-#include "alg_sha1.h"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-/**************************************************************************
- * GLOBAL VARIABLE
- **************************************************************************/
-uchar sha1sum[HASH_LEN];
-
-/**************************************************************************
- * INTERNAL DEFINIITION
- **************************************************************************/
-#define MASK 0x3F
-#define K1 0x5A827999
-#define K2 0x6ED9EBA1
-#define K3 0x8F1BBCDC
-#define K4 0xCA62C1D6
-
-static const uchar padding[64] =
-{
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-/**************************************************************************
- * INTERNAL FUNCTIONS
- **************************************************************************/
-void hash_starts( sha1_ctx *ctx );
-void hash_update( sha1_ctx *ctx, const uchar *input, int ilen );
-void hash_finish( sha1_ctx *ctx, uchar output[20] );
-
-/**************************************************************************
- * MACRO
- **************************************************************************/
-inline ulong get_ul (const uchar * b, ulong i)
-{
- return ((ulong)(b)[(i)] << 24) | ((ulong)(b)[(i) + 1] << 16) | ((ulong)(b)[(i) + 2] << 8) | ((ulong)(b)[(i) + 3]);
-}
-
-inline void set_ul (ulong n, uchar * b, ulong i)
-{
- (b)[(i) ] = (uchar) ((n) >> 24);
- (b)[(i) + 1] = (uchar) ((n) >> 16);
- (b)[(i) + 2] = (uchar) ((n) >> 8);
- (b)[(i) + 3] = (uchar) ((n) );
-}
-
-inline ulong cal_S (ulong x, ulong n)
-{
- return ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)));
-}
-
-inline ulong cal_A2 (ulong b)
-{
- return cal_S(b,30);
-}
-
-ulong cal_P (ulong a, ulong b, ulong c, ulong d, ulong x, uint32 i)
-{
- if((20 > i) && (i >= 0))
- {
- return (cal_S(a,5) + ((d ^ (b & (c ^ d)))) + K1 + x);
- }
- else if((40 > i) && (i >= 20))
- {
- return (cal_S(a,5) + ((b ^ c ^ d)) + K2 + x);
- }
- else if((60 > i) && (i >= 40))
- {
- return (cal_S(a,5) + (((b & c) | (d & (b | c)))) + K3 + x);
- }
- else
- {
- return (cal_S(a,5) + ((b ^ c ^ d)) + K4 + x);
- }
-}
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-void hash_starts( sha1_ctx *ctx )
-{
- ctx->to[0] = 0;
- ctx->to[1] = 0;
-
- ctx->st[0] = 0x67452301;
- ctx->st[1] = 0xEFCDAB89;
- ctx->st[2] = 0x98BADCFE;
- ctx->st[3] = 0x10325476;
- ctx->st[4] = 0xC3D2E1F0;
-}
-
-static void hash_process( sha1_ctx *ctx, const uchar data[64] )
-{
-
- uint32 i = 0;
- ulong temp, V[16], A1, A2, A3, A4, A5;
-
- for(i = 0; i<16; i ++)
- {
- V[i] = get_ul(data,i*4);
- }
-
-#define R(t) \
- ( \
- temp = V[(t - 3) & 0x0F] ^ V[(t - 8) & 0x0F] ^ \
- V[(t - 14) & 0x0F] ^ V[t & 0x0F], \
- ( V[t & 0x0F] = cal_S(temp,1) ) \
- )
-
- A1 = ctx->st[0];
- A2 = ctx->st[1];
- A3 = ctx->st[2];
- A4 = ctx->st[3];
- A5 = ctx->st[4];
-
- for(i=0; i<16; i++)
- {
- /* processing */
- switch (i%5)
- {
- case 0:
- A5 += cal_P (A1, A2, A3, A4, V[i], i);
- A2 = cal_A2(A2);
- break;
- case 1:
- A4 += cal_P (A5, A1, A2, A3, V[i], i);
- A1 = cal_A2(A1);
- break;
- case 2:
- A3 += cal_P (A4, A5, A1, A2, V[i], i);
- A5 = cal_A2(A5);
- break;
- case 3:
- A2 += cal_P (A3, A4, A5, A1, V[i], i);
- A4 = cal_A2(A4);
- break;
- case 4:
- A1 += cal_P (A2, A3, A4, A5, V[i], i);
- A3 = cal_A2(A3);
- break;
- }
- }
-
- for(i=16; i<80; i++)
- {
- /* processing */
- switch (i%5)
- {
- case 0:
- A5 += cal_P (A1, A2, A3, A4, R(i), i);
- A2 = cal_A2(A2);
- break;
- case 1:
- A4 += cal_P (A5, A1, A2, A3, R(i), i);
- A1 = cal_A2(A1);
- break;
- case 2:
- A3 += cal_P (A4, A5, A1, A2, R(i), i);
- A5 = cal_A2(A5);
- break;
- case 3:
- A2 += cal_P (A3, A4, A5, A1, R(i), i);
- A4 = cal_A2(A4);
- break;
- case 4:
- A1 += cal_P (A2, A3, A4, A5, R(i), i);
- A3 = cal_A2(A3);
- break;
- }
- }
-
- ctx->st[0] += A1;
- ctx->st[1] += A2;
- ctx->st[2] += A3;
- ctx->st[3] += A4;
- ctx->st[4] += A5;
-}
-
-void hash_update( sha1_ctx *ctx, const uchar *input, int ilen )
-{
- int fill;
- ulong le;
-
- if( ilen <= 0 )
- {
- return;
- }
-
- le = ctx->to[0] & MASK;
- fill = 64 - le;
-
- ctx->to[0] += ilen;
- ctx->to[0] &= 0xFFFFFFFF;
-
- if( ctx->to[0] < (ulong) ilen )
- {
- ctx->to[1]++;
- }
-
- if( le && ilen >= fill )
- {
- memcpy( (void *) (ctx->buf + le), (void *) input, fill );
- hash_process( ctx, ctx->buf );
- ilen -= fill;
- input += fill;
- le = 0;
- }
-
- while( ilen >= 64 )
- {
- hash_process( ctx, input );
- ilen -= 64;
- input += 64;
- }
-
- if( ilen > 0 )
- {
- memcpy( (void *) (ctx->buf + le), (void *) input, ilen );
- }
-}
-
-void hash_finish( sha1_ctx *ctx, uchar output[20] )
-{
- uint32 i = 0;
- ulong last, padn;
- ulong hi, lo;
- uchar msglen[8];
-
- hi = ( ctx->to[0] >> 29 ) | ( ctx->to[1] << 3 );
- lo = ( ctx->to[0] << 3 );
-
- set_ul( hi, msglen, 0 );
- set_ul( lo, msglen, 4 );
-
- last = ctx->to[0] & MASK;
-
- if (last < 56)
- {
- padn = 56 - last;
- }
- else
- {
- padn = 120 - last;
- }
-
- hash_update( ctx, (uchar *) padding, padn );
- hash_update( ctx, msglen, 8 );
-
- for(i=0; i<5; i++)
- {
- set_ul(ctx->st[i], output, i*4);
- }
-}
-
-void sha1( const uchar *input, int ilen, uchar output[20] )
-{
- sha1_ctx ctx;
-
- /* initialize variable */
- hash_starts( &ctx );
- /* block processing */
- hash_update( &ctx, input, ilen );
- /* complete */
- hash_finish( &ctx, output );
-
- memset( &ctx, 0, sizeof( sha1_ctx ) );
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_aes.c b/drivers/misc/mediatek/masp/asf/core/sec_aes.c
deleted file mode 100644
index d21b36bea..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_aes.c
+++ /dev/null
@@ -1,192 +0,0 @@
-#include "sec_osal_light.h"
-#include "sec_aes.h"
-#include "sec_cipher_header.h"
-#include "sec_typedef.h"
-#include "sec_error.h"
-#include "sec_rom_info.h"
-#include "sec_secroimg.h"
-#include "sec_key_util.h"
-/* v1. legacy aes. W1128/32 MP */
-#include "aes_legacy.h"
-/* v2. so aes. W1150 MP */
-#include "aes_so.h"
-
-/**************************************************************************
- * DEFINITIONS
- **************************************************************************/
-#define MOD "SEC AES"
-#define SML_SCRAMBLE_SEED "78ABD4569EA41795"
-
-/**************************************************************************
-* DEBUG CONTROL
-**************************************************************************/
-#define SEC_AES_DEBUG_LOG (0)
-#define SMSG printk
-
-/**************************************************************************
- * LOCAL VARIABLE
- **************************************************************************/
-static uchar bAesKeyInit = FALSE;
-
-/**************************************************************************
- * EXTERNAL VARIABLE
- **************************************************************************/
-extern AND_ROMINFO_T rom_info;
-extern AND_SECROIMG_T secroimg;
-
-/**************************************************************************
- * EXTERNAL FUNCTION
- **************************************************************************/
-
-/**************************************************************************
- * DUMP HEADER
- **************************************************************************/
-void sec_dump_img_header (const CIPHER_HEADER *img_header)
-{
- SMSG("[%s] header magic_number = %d\n",MOD,img_header->magic_number);
- SMSG("[%s] header cust_name = %s\n",MOD,img_header->cust_name);
- SMSG("[%s] header image_version = %d\n",MOD,img_header->image_version);
- SMSG("[%s] header image_length = %d\n",MOD,img_header->image_length);
- SMSG("[%s] header image_offset = %d\n",MOD,img_header->image_offset);
- SMSG("[%s] header cipher_length = %d\n",MOD,img_header->cipher_length);
- SMSG("[%s] header cipher_offset = %d\n",MOD,img_header->cipher_offset);
-}
-
-/**************************************************************************
- * IMPORT KEY
- **************************************************************************/
-int sec_aes_import_key(void)
-{
- int ret = SEC_OK;
- uchar key[AES_KEY_SIZE] = {0};
- AES_VER aes_ver = AES_VER_LEGACY;
- uint32 key_len = 0;
-
- /* avoid re-init aes key
- if re-init key again, key value will be decoded twice ..*/
- if(TRUE == bAesKeyInit)
- {
- SMSG("[%s] reset aes vector\n",MOD);
- /* initialize internal crypto engine */
- if(SEC_OK != (ret = lib_aes_init_vector (rom_info.m_SEC_CTRL.m_sec_aes_legacy?(AES_VER_LEGACY):(AES_VER_SO))))
- {
- goto _end;
- }
- return ret;
- }
-
- bAesKeyInit = TRUE;
-
- if(0 != mcmp(rom_info.m_id,RI_NAME,RI_NAME_LEN))
- {
- SMSG("[%s] error. key not found\n",MOD);
- ret = ERR_AES_KEY_NOT_FOUND;
- goto _end;
- }
-
-
- /* -------------------------- */
- /* check aes type */
- /* -------------------------- */
- if(TRUE == rom_info.m_SEC_CTRL.m_sec_aes_legacy)
- {
- aes_ver = AES_VER_LEGACY;
- key_len = 32;
- }
- else
- {
- aes_ver = AES_VER_SO;
- key_len = 16;
- }
-
-
- /* -------------------------- */
- /* get sml aes key */
- /* -------------------------- */
- if(FALSE == rom_info.m_SEC_CTRL.m_sml_aes_key_ac_en)
- {
- sec_decode_key( rom_info.m_SEC_KEY.sml_aes_key,
- sizeof(rom_info.m_SEC_KEY.sml_aes_key),
- rom_info.m_SEC_KEY.crypto_seed,
- sizeof(rom_info.m_SEC_KEY.crypto_seed));
- dump_buf(rom_info.m_SEC_KEY.sml_aes_key,4);
- mcpy(key,rom_info.m_SEC_KEY.sml_aes_key,sizeof(key));
- }
- else
- {
- SMSG("\n[%s] AC enabled\n",MOD);
- dump_buf(secroimg.m_andro.sml_aes_key,4);
- sec_decode_key( secroimg.m_andro.sml_aes_key,
- sizeof(secroimg.m_andro.sml_aes_key),
- (uchar*)SML_SCRAMBLE_SEED,
- sizeof(SML_SCRAMBLE_SEED));
- dump_buf(secroimg.m_andro.sml_aes_key,4);
- mcpy(key,secroimg.m_andro.sml_aes_key,sizeof(key));
- }
-
- /* initialize internal crypto engine */
- if(SEC_OK != (ret = lib_aes_init_key (key,key_len,aes_ver)))
- {
- goto _end;
- }
-
-_end:
-
- return ret;
-}
-
-/**************************************************************************
- * IMAGE CIPHER AES INIT
- **************************************************************************/
-int sec_aes_init(void)
-{
- int ret = SEC_OK;
-
- /* init key */
- if (SEC_OK != (ret = sec_aes_import_key()))
- {
- goto _exit;
- }
-
-_exit:
-
- return ret;
-}
-
-
-/**************************************************************************
- * AES TEST FUNCTION
- **************************************************************************/
-/* Note: this function is only for aes test */
-int sec_aes_test (void)
-{
- int ret = SEC_OK;
- uchar buf[CIPHER_BLOCK_SIZE] = "AES_TEST";
-
- SMSG("\n[%s] SW AES test\n",MOD);
-
- /* -------------------------- */
- /* sec aes encrypt test */
- /* -------------------------- */
- SMSG("[%s] input = 0x%x,0x%x,0x%x,0x%x\n",MOD,buf[0],buf[1],buf[2],buf[3]);
- if(SEC_OK != (ret = lib_aes_enc(buf,CIPHER_BLOCK_SIZE,buf,CIPHER_BLOCK_SIZE)))
- {
- SMSG("[%s] error (0x%x)\n",MOD,ret);
- goto _exit;
- }
- SMSG("[%s] cipher = 0x%x,0x%x,0x%x,0x%x\n",MOD,buf[0],buf[1],buf[2],buf[3]);
-
- /* -------------------------- */
- /* sec aes decrypt test */
- /* -------------------------- */
- if(SEC_OK != (ret = lib_aes_dec(buf,CIPHER_BLOCK_SIZE,buf,CIPHER_BLOCK_SIZE)))
- {
- SMSG("[%s] error (0x%x)\n",MOD,ret);
- goto _exit;
- }
- SMSG("[%s] plain text = 0x%x,0x%x,0x%x,0x%x\n",MOD,buf[0],buf[1],buf[2],buf[3]);
-
-_exit:
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_boot_core.c b/drivers/misc/mediatek/masp/asf/core/sec_boot_core.c
deleted file mode 100644
index 56b79ff31..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_boot_core.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include "sec_boot_lib.h"
-#include <mach/sec_osal.h>
-#include <mach/mt_sec_hal.h>
-
-/**************************************************************************
- * DEFINITIONS
- **************************************************************************/
-#define MOD "ASF"
-
-/**************************************************************************
- * LOCAL VARIABLE
- **************************************************************************/
-
-/**************************************************************************
- * GLOBAL VARIABLE
- **************************************************************************/
-AND_ROMINFO_T rom_info;
-SECURE_INFO sec_info;
-SECCFG_U seccfg;
-
-bool bMsg = FALSE;
-bool bSECROInit = FALSE;
-
-
-/******************************************************************************
- * CHECK IF SECURITY CHIP IS ENABLED
-******************************************************************************/
-int sec_schip_enabled (void)
-{
- if(TRUE == masp_hal_sbc_enabled())
- {
- SMSG(true,"SC\n");
- return 1;
- }
- else
- {
- SMSG(true,"NSC\n");
- return 0;
- }
-
- return 0;
-}
-
-
-/******************************************************************************
- * CHECK IF SDS (SML DEFAULT SETTING BINARY) IS ENABLED
-******************************************************************************/
-/* not used */
-int sec_sds_enabled (void)
-{
- switch(rom_info.m_SEC_CTRL.m_sec_sds_en)
- {
- case 0:
- SMSG(bMsg,"[%s] SDS is disabled\n",MOD);
- return 1;
-
- case 1:
- SMSG(bMsg,"[%s] SDS is enabled\n",MOD);
- return 1;
-
- default:
- SMSG(true,"[%s] invalid SDS config (0x%x)\n",MOD,rom_info.m_SEC_CTRL.m_sec_sds_en);
- SEC_ASSERT(0);
- }
-
- return 0;
-}
-
-
-/******************************************************************************
- * CHECK IF SECURE BOOT IS NEEDED
-******************************************************************************/
-int sec_boot_enabled (void)
-{
- switch(rom_info.m_SEC_CTRL.m_sec_boot)
- {
- case ATTR_SBOOT_ENABLE:
- SMSG(bMsg,"[%s] SBOOT is enabled\n",MOD);
- SMSG(bMsg,"0x%x, SB-FORCE\n",ATTR_SBOOT_ENABLE);
- return 1;
-
- /* secure boot can't be disabled on security chip */
- case ATTR_SBOOT_DISABLE:
- case ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP:
- SMSG(bMsg,"[%s] SBOOT is only enabled on S-CHIP\n",MOD);
- if(TRUE == masp_hal_sbc_enabled())
- {
- SMSG(true,"0x%x, SB-SC\n",ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP);
- return 1;
- }
- else
- {
- SMSG(true,"0x%x, SB-NSC\n",ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP);
- return 0;
- }
- default:
- SMSG(true,"[%s] invalid sboot config (SB-0x%x)\n",MOD,rom_info.m_SEC_CTRL.m_sec_boot);
- SEC_ASSERT(0);
- }
-
- return 0;
-
-}
-
-/******************************************************************************
- * CHECK IF MODEM AUTH IS NEEDED
-******************************************************************************/
-int sec_modem_auth_enabled (void)
-{
-
- switch(rom_info.m_SEC_CTRL.m_sec_modem_auth)
- {
- case 0:
- SMSG(bMsg,"[%s] MODEM AUTH is disabled\n",MOD);
- return 0;
-
- case 1:
- SMSG(bMsg,"[%s] MODEM AUTH is enabled\n",MOD);
- return 1;
- default:
- SMSG(true,"[%s] invalid modem auth config (0x%x)\n",MOD,rom_info.m_SEC_CTRL.m_sec_modem_auth);
- SEC_ASSERT(0);
- }
-
- return 0;
-}
-
-/**************************************************************************
- * SECURE BOOT
- **************************************************************************/
-int sec_boot_key_init (void)
-{
- int ret = SEC_OK;
-
- if(TRUE == sec_info.bKeyInitDis)
- {
- SMSG(true,"[%s] key init disabled\n",MOD);
- goto _end;
- }
-
- /* ------------------------------ */
- /* init aes */
- /* ------------------------------ */
- if(SEC_OK != (ret = sec_aes_init()))
- {
- goto _end;
- }
-
- /* ------------------------------ */
- /* init rsa */
- /* ------------------------------ */
- if(SEC_OK != (ret = sec_init_key( rom_info.m_SEC_KEY.sml_auth_rsa_n,
- sizeof(rom_info.m_SEC_KEY.sml_auth_rsa_n),
- rom_info.m_SEC_KEY.sml_auth_rsa_e,
- sizeof(rom_info.m_SEC_KEY.sml_auth_rsa_e))))
- {
- goto _end;
- }
-
-_end:
- return ret;
-}
-
-/**************************************************************************
- * SECURE BOOT INIT HACC
- **************************************************************************/
-uint32 sec_boot_hacc_init (void)
-{
- uint32 ret = SEC_OK;
-
- /* ----------------------------------- */
- /* check if secure boot is enabled */
- /* ----------------------------------- */
- if(0 != mcmp(rom_info.m_id,RI_NAME,RI_NAME_LEN))
- {
- ret = ERR_ROM_INFO_MTD_NOT_FOUND;
- goto _end;
- }
-
- /* ----------------------------------- */
- /* lnit hacc key */
- /* ----------------------------------- */
- if(SEC_OK != (ret = masp_hal_sp_hacc_init (rom_info.m_SEC_KEY.crypto_seed,sizeof(rom_info.m_SEC_KEY.crypto_seed))))
- {
- goto _end;
- }
-
-_end:
-
- return ret;
-}
-
-/**************************************************************************
- * SECURE BOOT CHECK PART ENABLE CHECK
- **************************************************************************/
-bool sec_boot_check_part_enabled (char* part_name)
-{
- bool bCheckEn = false;
- uint32 i = 0;
- uint32 chk_num = 0;
-
- AND_SECBOOT_CHECK_PART_T *chk_part = NULL;
- SMSG(bMsg,"[%s] find part_name '%s'\n",MOD,part_name);
-
- chk_part = &rom_info.m_SEC_BOOT_CHECK_PART;
- chk_num = sizeof(AND_SECBOOT_CHECK_PART_T)/sizeof(chk_part->name[0]);
-
- for(i=0; i<chk_num; i++)
- {
- SMSG(bMsg,"[%s] chk_part->name[%d] = %s\n",MOD,i,chk_part->name[i]);
- if(0 == mcmp(part_name, chk_part->name[i], strlen(part_name)))
- {
- bCheckEn = true;
- break;
- }
- }
-
- return bCheckEn;
-}
-
-/**************************************************************************
- * SECURE BOOT INIT
- **************************************************************************/
-int masp_boot_init (void)
-{
- int ret = SEC_OK;
-
- SMSG(true,"[%s] '%s%s'\n",MOD,BUILD_TIME,BUILD_BRANCH);
-
-#if !defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
- /* ----------------------------------- */
- /* check usif status */
- /* ----------------------------------- */
- if(SEC_OK != (ret = sec_usif_check()))
- {
- goto _error;
- }
-#endif
- /* ----------------------------------- */
- /* scan partition map */
- /* ----------------------------------- */
- sec_dev_find_parts();
-
- /* ----------------------------------- */
- /* read rom info */
- /* ----------------------------------- */
- /* read rom info to get security config. */
- if(SEC_OK != (ret = sec_dev_read_rom_info()))
- {
- goto _error;
- }
-
- SMSG(true,"[%s] ROM INFO is found\n",MOD);
-
- if(0 != mcmp(rom_info.m_id,RI_NAME,RI_NAME_LEN))
- {
- SMSG(true,"[%s] error. ROM INFO not found\n",MOD);
- ret = ERR_ROM_INFO_MTD_NOT_FOUND;
- goto _error;
- }
-
- /* ----------------------------------- */
- /* read secro */
- /* ----------------------------------- */
- if(TRUE == rom_info.m_SEC_CTRL.m_secro_ac_en)
- {
- if(FALSE == bSECROInit)
- {
-#if 0
- if(TRUE == sec_secro_ac())
- {
- if(SEC_OK != (ret = sec_dev_read_secroimg()))
- {
- goto _error;
- }
- }
- else
- {
- /* only for non-security platform */
- if(SEC_OK != (ret = sec_fs_read_secroimg(FS_SECRO_PATH,(uchar*)&secroimg)))
- {
- goto _error;
- }
- }
-#else
- if(SEC_OK != (ret = sec_dev_read_secroimg()))
- {
- goto _error;
- }
-
-#endif
- bSECROInit = TRUE;
- }
- }
-
- /* ----------------------------------- */
- /* init key */
- /* ----------------------------------- */
- /* TODO : add support to read SML DEC key from SEC_RO */
- if(SEC_OK != (ret = sec_boot_key_init()))
- {
- goto _error;
- }
-
- return ret;
-
-_error:
-
- SMSG(true,"[%s] error (0x%x)\n",MOD,ret);
-
- return ret;
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_boot_lib.c b/drivers/misc/mediatek/masp/asf/core/sec_boot_lib.c
deleted file mode 100644
index 797fd02f1..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_boot_lib.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include "sec_boot_lib.h"
-
-/******************************************************************************
- * CONSTANT DEFINITIONS
- ******************************************************************************/
-#define MOD "ASF"
-
-/******************************************************************************
- * EXTERNAL VARIABLES
- ******************************************************************************/
-extern uchar sha1sum[];
-
-/******************************************************************************
- * EXTERNAL FUNCTION
- ******************************************************************************/
-
-/**************************************************************************
- * INTERNAL UTILITES
- **************************************************************************/
-void * mcpy(void *dest, const void *src, int cnt)
-{
- char *tmp = dest;
- const char *s = src;
-
- while (cnt--)
- *tmp++ = *s++;
- return dest;
-}
-
-int mcmp (const void *cs, const void *ct, int cnt)
-{
- const uchar *su1, *su2;
- int res = 0;
-
- for (su1 = cs, su2 = ct; 0 < cnt; ++su1, ++su2, cnt--)
- if ((res = *su1 - *su2) != 0)
- break;
- return res;
-}
-
-void dump_buf(uchar* buf, uint32 len)
-{
- uint32 i = 1;
-
- for (i =1; i <len+1; i++)
- {
- if(0 != buf[i-1])
- {
- SMSG(true,"0x%x,",buf[i-1]);
-
- if(0 == i%8)
- {
- SMSG(true,"\n");
- }
- }
- }
-
- SMSG(true,"\n");
-}
-
-/******************************************************************************
- * IMAGE HASH DUMP
- ******************************************************************************/
-void img_hash_dump (uchar *buf, uint32 size)
-{
- uint32 i = 0;
-
- for (i = 0 ; i < size ; i++)
- {
- if(i % 4 ==0)
- {
- SMSG(true,"\n");
- }
-
- if(buf[i] < 0x10)
- {
- SMSG(true,"0x0%x, ",buf[i]);
- }
- else
- {
- SMSG(true,"0x%x, ",buf[i]);
- }
- }
-}
-
-/******************************************************************************
- * IMAGE HASH CALCULATION
- ******************************************************************************/
-void img_hash_compute (uchar *buf, uint32 size)
-{
- SEC_ASSERT(0);
-}
-
-/******************************************************************************
- * IMAGE HASH UPDATE
- ******************************************************************************/
-uint32 img_hash_update (char* part_name)
-{
- uint32 ret = SEC_OK;
-
- SEC_ASSERT(0);
-
- return ret;
-}
-
-
-/******************************************************************************
- * IMAGE HASH CHECK
- ******************************************************************************/
-uint32 img_hash_check (char* part_name)
-{
- uint32 ret = SEC_OK;
-
- SEC_ASSERT(0);
-
- return ret;
-}
-
-
-/******************************************************************************
- * GET BUILD INFORMATION
- ******************************************************************************/
-char* asf_get_build_info(void)
-{
- return BUILD_TIME""BUILD_BRANCH;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_ccci.c b/drivers/misc/mediatek/masp/asf/core/sec_ccci.c
deleted file mode 100644
index cc948ad75..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_ccci.c
+++ /dev/null
@@ -1,114 +0,0 @@
-#include <mach/mt_sec_hal.h>
-#include "sec_boot_lib.h"
-#include "sec_ccci.h"
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "SEC_CCCI"
-
-int masp_ccci_signfmt_verify_file(char *file_path, unsigned int *data_offset, unsigned int *data_sec_len)
-{
- unsigned int ret = SEC_OK;
- SEC_IMG_HEADER img_hdr;
-
- *data_offset = 0;
- *data_sec_len = 0;
-
- ret = sec_signfmt_verify_file(file_path, &img_hdr, data_offset, data_sec_len);
-
- /* image is not signed */
- if( ret == ERR_SIGN_FORMAT_MAGIC_WRONG )
- {
- if((sec_modem_auth_enabled() == 0) && (sec_schip_enabled() == 0))
- {
- SMSG(true,"[%s] image has no sec header\n",MOD);
- ret = SEC_OK;
- goto _out;
- }
- else
- {
- SMSG(true,"[%s] (img not signed) sec_modem_auth_enabled() = %d\n",MOD,sec_modem_auth_enabled());
- SMSG(true,"[%s] (img not signed) sec_schip_enabled() = %d\n",MOD,sec_schip_enabled());
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _out;
- }
- }
-
- if( ret != SEC_OK )
- {
- SMSG(true,"[%s] file '%s' verify failed\n",MOD,file_path);
- goto _out;
- }
-
- SMSG(true,"[%s] data_offset is %d\n",MOD,*data_offset);
- SMSG(true,"[%s] data_sec_len is %d\n",MOD,*data_sec_len);
-
-_out:
-
- return ret;
-}
-
-int masp_ccci_version_info(void)
-{
- return CCCI_VERSION;
-}
-
-int sec_ccci_file_open(char *file_path)
-{
- int fp_id;
-
- fp_id = osal_filp_open_read_only(file_path);
-
- if(fp_id != OSAL_FILE_NULL)
- {
- return fp_id;
- }
-
- return -1;
-}
-
-int sec_ccci_file_close(int fp_id)
-{
- return osal_filp_close(fp_id);
-}
-
-
-int masp_ccci_is_cipherfmt(int fp_id, unsigned int start_off, unsigned int *img_len)
-{
- if( SEC_OK != sec_cipherfmt_check_cipher(fp_id, start_off, img_len) )
- {
- *img_len = 0;
- return 0;
- }
-
- return 1;
-}
-
-int masp_ccci_decrypt_cipherfmt(int fp_id, unsigned int start_off, char *buf, unsigned int buf_len, unsigned int *data_offset)
-{
- return sec_cipherfmt_decrypted(fp_id, start_off, buf, buf_len, data_offset);
-}
-
-void masp_secure_algo(unsigned char Direction, unsigned char *ContentAddr, unsigned int ContentLen, unsigned char *CustomSeed, unsigned char *ResText)
-{
- return masp_hal_secure_algo(Direction, ContentAddr, ContentLen, CustomSeed, ResText);
-}
-
-/* return the result of hwEnableClock ( )
- - TRUE (1) means crypto engine init success
- - FALSE (0) means crypto engine init fail */
-unsigned char masp_secure_algo_init(void)
-{
- return masp_hal_secure_algo_init();
-}
-
-/* return the result of hwDisableClock ( )
- - TRUE (1) means crypto engine de-init success
- - FALSE (0) means crypto engine de-init fail */
-unsigned char masp_secure_algo_deinit(void)
-{
- return masp_hal_secure_algo_deinit();
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_cfg_crypto.c b/drivers/misc/mediatek/masp/asf/core/sec_cfg_crypto.c
deleted file mode 100644
index ddc59aed4..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_cfg_crypto.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include "sec_boot_lib.h"
-
-/******************************************************************************
- * CONSTANT DEFINITIONS
- ******************************************************************************/
-#define MOD "SEC_CFG_CRYPTO"
-
-/******************************************************************************
- * GET SECCFG CIPHER LENGTH
- ******************************************************************************/
-unsigned int get_seccfg_cipher_len (void)
-{
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- return (SECURE_IMAGE_COUNT*sizeof(SECURE_IMG_INFO_V1)+16);
- case SECCFG_V3:
- return (SECURE_IMAGE_COUNT_V3*sizeof(SECURE_IMG_INFO_V3)+12+4+EXT_REGION_BUF_SIZE);
- default:
- /* return the wrong size */
- return 0;
- }
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_cfg_ver.c b/drivers/misc/mediatek/masp/asf/core/sec_cfg_ver.c
deleted file mode 100644
index a3b258d4c..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_cfg_ver.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include "sec_boot_lib.h"
-#include "sec_cfg_ver.h"
-
-/******************************************************************************
- * CONSTANT DEFINITIONS
- ******************************************************************************/
-#define MOD "SECCFG_VER"
-
-/******************************************************************************
- * LOCAL VARIABLE
- ******************************************************************************/
-static SECCFG_VER seccfg_ver = SECCFG_V1;
-
-/******************************************************************************
- * SECCFG VERSION
- ******************************************************************************/
-SECCFG_VER get_seccfg_ver (void)
-{
- switch(seccfg_ver)
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- return seccfg_ver;
- case SECCFG_V3:
- return seccfg_ver;
- default:
- SEC_ASSERT(0);
- }
-
- return 0;
-}
-
-void set_seccfg_ver (SECCFG_VER val)
-{
- switch(val)
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- seccfg_ver = val;
- break;
- case SECCFG_V3:
- case SECCFG_UNSET:
- seccfg_ver = val;
- break;
- default:
- SEC_ASSERT(0);
- }
-}
-
-/******************************************************************************
- * SECCFG STATUS
- ******************************************************************************/
-SECCFG_STATUS get_seccfg_status (SECCFG_U *p_seccfg)
-{
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- return p_seccfg->v1.status;
- case SECCFG_V3:
- return p_seccfg->v3.seccfg_status;
- case SECCFG_UNSET:
- default:
- memset(p_seccfg,0,sizeof(SECCFG_U));
- return 0;
- }
-}
-
-void set_seccfg_status (SECCFG_U *p_seccfg, SECCFG_STATUS val)
-{
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- p_seccfg->v1.status = val;
- break;
- case SECCFG_V3:
- p_seccfg->v3.seccfg_status = val;
- break;
- case SECCFG_UNSET:
- default:
- memset(p_seccfg,0,sizeof(SECCFG_U));
- break;
- }
-}
-
-/******************************************************************************
- * SECCFG SIU
- ******************************************************************************/
-uint32 get_seccfg_siu (SECCFG_U *p_seccfg)
-{
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- return p_seccfg->v1.siu_status;
- case SECCFG_V3:
- return p_seccfg->v3.siu_status;
- case SECCFG_UNSET:
- default:
- memset(p_seccfg,0,sizeof(SECCFG_U));
- return 0;
- }
-}
-
-void set_seccfg_siu (SECCFG_U *p_seccfg, uint32 val)
-{
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- p_seccfg->v1.siu_status = val;
- break;
- case SECCFG_V3:
- p_seccfg->v3.siu_status = val;
- break;
- case SECCFG_UNSET:
- default:
- memset(p_seccfg,0,sizeof(SECCFG_U));
- break;
- }
-}
-
-/******************************************************************************
- * SECCFG IMAGE COUNT
- ******************************************************************************/
-uint32 get_seccfg_img_cnt (void)
-{
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- return SECURE_IMAGE_COUNT;
- case SECCFG_V3:
- return SECURE_IMAGE_COUNT_V3;
- case SECCFG_UNSET:
- default:
- return 0;
- }
-}
-
-/******************************************************************************
- * SECCFG VERSION DETECT
- ******************************************************************************/
-int seccfg_ver_detect (void)
-{
- int ret = SEC_OK;
-
- /* ----------------------------------- */
- /* check seccfg magic */
- /* ----------------------------------- */
- if(SEC_CFG_MAGIC_NUM != seccfg.v1.magic_number)
- {
- ret = ERR_SEC_CFG_MAGIC_INVALID;
- goto _end;
- }
-
- /* ----------------------------------- */
- /* detect seccfg version */
- /* ----------------------------------- */
- if(SEC_CFG_END_PATTERN == seccfg.v1.end_pattern)
- {
- SMSG(true,"[%s] seccfg version v%d detected\n",MOD,seccfg.v1.lib_ver);
- if(SECCFG_V1 != seccfg.v1.lib_ver)
- {
- SMSG(true,"[%s] seccfg version not v1, correct it\n",MOD);
- }
- set_seccfg_ver(SECCFG_V1);
- set_shdr_ver(SEC_HDR_V1);
- }
- else if(SEC_CFG_END_PATTERN == seccfg.v3.end_pattern)
- {
- SMSG(true,"[%s] seccfg version v%d detected\n",MOD,seccfg.v3.seccfg_ver);
- if(SECCFG_V3 != seccfg.v3.seccfg_ver)
- {
- SMSG(true,"[%s] seccfg version not v3, correct it\n",MOD);
- }
- set_seccfg_ver(SECCFG_V3);
- set_shdr_ver(SEC_HDR_V3);
- }
- else
- {
- ret = ERR_SEC_CFG_VERSION_INVALID;
- goto _end;
- }
-
-_end:
-
- return ret;
-}
-
-/******************************************************************************
- * SECCFG VERSION CORRECT
- ******************************************************************************/
-int seccfg_ver_correct (void)
-{
- int ret = SEC_OK;
- SEC_IMG_HEADER_U *sign_header = 0;
-
- /* ----------------------------------- */
- /* check seccfg magic */
- /* ----------------------------------- */
- if(SEC_CFG_MAGIC_NUM != seccfg.v1.magic_number)
- {
- ret = ERR_SEC_CFG_MAGIC_INVALID;
- goto _end;
- }
-
- /* ----------------------------------- */
- /* check seccfg version */
- /* ----------------------------------- */
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
-
- /* correct seccfg version */
- sign_header = (SEC_IMG_HEADER_U *)&seccfg.v1.image_info[0].header;
-
- if(SEC_IMG_MAGIC != sign_header->v1.magic_number)
- {
- ret = ERR_SBOOT_CHECK_INVALID_IMG_MAGIC_NUM;
- goto _end;
- }
-
- if(0 == sign_header->v2.signature_length)
- {
- set_shdr_ver(SEC_HDR_V1);
- set_seccfg_ver(SECCFG_V1);
- }
- else
- {
- set_shdr_ver(SEC_HDR_V2);
- set_seccfg_ver(SECCFG_V1_2);
- }
-
- break;
-
- case SECCFG_V3:
-
- set_shdr_ver(SEC_HDR_V3);
- set_seccfg_ver(SECCFG_V3);
-
- break;
- default:
-
- ret = ERR_SEC_CFG_VERSION_INVALID;
- goto _end;
- }
-
-_end:
-
- return ret;
-}
-
-/******************************************************************************
- * SECCFG VERSION CHECK
- ******************************************************************************/
-int seccfg_ver_verify (void)
-{
- int ret = SEC_OK;
-
- /* ----------------------------------- */
- /* check seccfg magic */
- /* ----------------------------------- */
- if(SEC_CFG_MAGIC_NUM != seccfg.v1.magic_number)
- {
- ret = ERR_SEC_CFG_MAGIC_INVALID;
- goto _end;
- }
-
- /* ----------------------------------- */
- /* check seccfg version */
- /* ----------------------------------- */
- switch(get_seccfg_ver())
- {
- case SECCFG_V1:
- case SECCFG_V1_2:
- SMSG(true,"[%s] seccfg id = %s\n",MOD,seccfg.v1.id);
-
- if(0 != mcmp(seccfg.v1.id,SEC_CFG_BEGIN,SEC_CFG_BEGIN_LEN))
- {
- ret = ERR_SEC_CFG_INVALID_ID;
- goto _end;
- }
-
- SMSG(true,"[%s] seccfg end pattern = 0x%x\n",MOD,seccfg.v1.end_pattern);
-
- if(SEC_CFG_END_PATTERN != seccfg.v1.end_pattern)
- {
- ret = ERR_SEC_CFG_INVALID_END_PATTERN;
- goto _end;
- }
-
- break;
-
- case SECCFG_V3:
- SMSG(true,"[%s] seccfg id = %s\n",MOD,seccfg.v3.id);
-
- if(0 != mcmp(seccfg.v3.id,SEC_CFG_BEGIN,SEC_CFG_BEGIN_LEN))
- {
- ret = ERR_SEC_CFG_INVALID_ID;
- goto _end;
- }
-
- SMSG(true,"[%s] seccfg end pattern = 0x%x\n",MOD,seccfg.v3.end_pattern);
-
- if(SEC_CFG_END_PATTERN != seccfg.v3.end_pattern)
- {
- ret = ERR_SEC_CFG_INVALID_END_PATTERN;
- goto _end;
- }
-
- break;
- default:
-
- ret = ERR_SEC_CFG_VERSION_INVALID;
- goto _end;
- }
-
-_end:
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_cipherfmt_core.c b/drivers/misc/mediatek/masp/asf/core/sec_cipherfmt_core.c
deleted file mode 100644
index 18e2c7a7d..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_cipherfmt_core.c
+++ /dev/null
@@ -1,296 +0,0 @@
-#include "sec_boot_lib.h"
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "CFMT_CORE"
-
-/******************************************************************************
- * IMAGE VERIFICATION MEMORY DUMP FUNCTIONS
- ******************************************************************************/
-#define DUMP_MORE_FOR_DEBUG 0
-
-#if DUMP_MORE_FOR_DEBUG
-static void sec_cipherfmt_dump_buffer(uchar* buf, uint32 len)
-{
- uint32 i = 0;
-
- for (i =1; i <len+1; i++)
- {
- SMSG(true,"0x%x,",buf[i-1]);
-
- if(0 == (i%8))
- SMSG(true,"\n");
- }
-
- if(0 != (len%8))
- SMSG(true,"\n");
-}
-#endif
-
-
-/**************************************************************************
- * FUNCTION To check if the image is encrypted
- **************************************************************************/
-int sec_cipherfmt_check_cipher(ASF_FILE fp, unsigned int start_off, unsigned int *img_len)
-{
- CIPHER_HEADER cipher_header;
- uint32 read_sz = 0;
- unsigned int ret = SEC_OK;
-
- ASF_GET_DS
-
- memset(&cipher_header, 0x00, CIPHER_IMG_HEADER_SIZE);
-
- if( !ASF_FILE_ERROR(fp) )
- {
- ASF_SEEK_SET(fp, start_off);
- /* get header */
- if (CIPHER_IMG_HEADER_SIZE != (read_sz = ASF_READ(fp, (char*)&cipher_header, CIPHER_IMG_HEADER_SIZE)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,CIPHER_IMG_HEADER_SIZE);
- ret = ERR_IMAGE_CIPHER_READ_FAIL;
- goto _read_hdr_fail;
- }
- }
- else
- {
- SMSG(true,"[%s] file pointer is NULL\n",MOD);
- ret = ERR_IMAGE_CIPHER_IMG_NOT_FOUND;
- goto _img_hdr_not_found;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_check_cipher - dump header\n",MOD);
- sec_cipherfmt_dump_buffer((char*)&cipher_header, CIPHER_IMG_HEADER_SIZE);
-#endif
-
- if( CIPHER_IMG_MAGIC != cipher_header.magic_number )
- {
- SMSG(true,"[%s] magic number is wrong\n",MOD);
- ret = ERR_IMAGE_CIPHER_HEADER_NOT_FOUND;
- goto _img_hdr_not_found;
- }
-
- *img_len = cipher_header.image_length;
-
-_img_hdr_not_found:
-_read_hdr_fail:
-
- ASF_PUT_DS
-
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTION To decrypt the cipher content
- **************************************************************************/
-int sec_cipherfmt_decrypted(ASF_FILE fp, unsigned int start_off, char *buf, unsigned int buf_len, unsigned int *data_offset)
-{
- unsigned int ret = SEC_OK;
- CIPHER_HEADER cipher_header;
- uint32 read_sz = 0;
- uint32 read_offset = start_off;
- char *buf_ptr = buf;
- uint32 total_len = 0;
- uint32 end_pos;
- char tmp_buf[CIPHER_BLOCK_SIZE];
- char tmp_buf2[CIPHER_BLOCK_SIZE];
- uint32 try_read_len = 0;
-
- ASF_GET_DS
-
- SMSG(true,"[%s] sec_cipherfmt_decrypted (DS lock) - start offset is %d (0x%x)\n",MOD, start_off, start_off);
- SMSG(true,"[%s] sec_cipherfmt_decrypted (DS lock) - total buffer length %d (0x%x)\n",MOD, buf_len, buf_len);
-
- memset(&cipher_header, 0x00, CIPHER_IMG_HEADER_SIZE);
-
- if( !ASF_FILE_ERROR(fp) )
- {
- ASF_SEEK_SET(fp, read_offset);
- /* get header */
- if (CIPHER_IMG_HEADER_SIZE != (read_sz = ASF_READ(fp, (char*)&cipher_header, CIPHER_IMG_HEADER_SIZE)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,CIPHER_IMG_HEADER_SIZE);
- ret = ERR_IMAGE_CIPHER_READ_FAIL;
- goto _read_hdr_fail;
- }
- }
- else
- {
- SMSG(true,"[%s] file pointer is NULL\n",MOD);
- ret = ERR_IMAGE_CIPHER_IMG_NOT_FOUND;
- goto _read_hdr_fail;
- }
-
- if( CIPHER_IMG_MAGIC != cipher_header.magic_number )
- {
- SMSG(true,"[%s] file pointer is NULL\n",MOD);
- ret = ERR_IMAGE_CIPHER_HEADER_NOT_FOUND;
- goto _hdr_not_found;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump header\n",MOD);
- sec_cipherfmt_dump_buffer((char*)&cipher_header, CIPHER_IMG_HEADER_SIZE);
-#endif
-
- read_offset += CIPHER_IMG_HEADER_SIZE;
- ASF_SEEK_SET(fp, read_offset);
- total_len = cipher_header.image_length;
-
- SMSG(true,"[%s] sec_cipherfmt_decrypted - cipher_offset is %d (0x%x)\n",MOD, cipher_header.cipher_offset, cipher_header.cipher_offset);
- SMSG(true,"[%s] sec_cipherfmt_decrypted - cipher_length %d (0x%x)\n",MOD, cipher_header.cipher_length, cipher_header.cipher_length);
-
- /* by pass cipher offset, cause this part is not encrypted */
- if( cipher_header.cipher_offset )
- {
- /* get header */
- if (cipher_header.cipher_offset != (read_sz = ASF_READ(fp, (char*)buf_ptr, cipher_header.cipher_offset)))
- {
- SMSG(true,"[%s] read start size '%d' != '%d'\n",MOD,read_sz,cipher_header.cipher_offset);
- ret = ERR_IMAGE_CIPHER_READ_FAIL;
- goto _read_cipher_offset_fail;
- }
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump head part: 0x%x\n",MOD, read_offset);
- sec_cipherfmt_dump_buffer(buf_ptr, cipher_header.cipher_offset);
-#endif
- read_offset += cipher_header.cipher_offset;
- buf_ptr += cipher_header.cipher_offset;
- total_len -= cipher_header.cipher_offset;
- }
-
- ASF_SEEK_SET(fp, read_offset);
-
- /* decrypted the cipher content */
- if( cipher_header.cipher_length )
- {
- end_pos = read_offset + cipher_header.cipher_length;
-
- /* init the key */
- ret = sec_aes_init();
- if (ret) {
- SMSG(true,"[%s] key init failed!\n",MOD);
- ret = ERR_IMAGE_CIPHER_KEY_ERR;
- goto _key_init_fail;
- }
-
- /* read with fixed block size */
- while( read_offset < end_pos )
- {
- if( (end_pos - read_offset) < CIPHER_BLOCK_SIZE )
- {
- SMSG(true,"[%s] cipher block size is not aligned (warning!)\n",MOD);
- try_read_len = end_pos - read_offset;
- break;
- }
- memset(tmp_buf, 0x00, CIPHER_BLOCK_SIZE);
- if (CIPHER_BLOCK_SIZE != (read_sz = ASF_READ(fp, (char*)tmp_buf, CIPHER_BLOCK_SIZE)))
- {
- SMSG(true,"[%s] read cipher size '%d' != '%d'(try)\n",MOD,read_sz,CIPHER_BLOCK_SIZE);
- ret = ERR_IMAGE_CIPHER_READ_FAIL;
- goto _read_cipher_size_wrong;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump cipher part: 0x%x\n",MOD, read_offset);
- sec_cipherfmt_dump_buffer(tmp_buf, CIPHER_BLOCK_SIZE);
-#endif
-
- ret = lib_aes_dec(tmp_buf, CIPHER_BLOCK_SIZE, buf_ptr, CIPHER_BLOCK_SIZE);
- if (ret) {
- SMSG(true,"[%s] dec cipher block fail\n",MOD);
- ret = ERR_IMAGE_CIPHER_DEC_Fail;
- goto _decrypt_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump decipher part: 0x%x\n",MOD, read_offset);
- sec_cipherfmt_dump_buffer(buf_ptr, CIPHER_BLOCK_SIZE);
-#endif
-
- read_offset += CIPHER_BLOCK_SIZE;
- buf_ptr += CIPHER_BLOCK_SIZE;
- total_len -= CIPHER_BLOCK_SIZE;
- }
-
- /* read with remain block size */
- if( try_read_len )
- {
- memset(tmp_buf, 0x00, CIPHER_BLOCK_SIZE);
- if (try_read_len != (read_sz = ASF_READ(fp, (char*)tmp_buf, try_read_len)))
- {
- SMSG(true,"[%s] read cipher size '%d' != '%d'(remain)\n",MOD,read_sz,try_read_len);
- ret = ERR_IMAGE_CIPHER_READ_FAIL;
- goto _read_cipher_size_wrong;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump cipher part: 0x%x (try)\n",MOD, read_offset);
- sec_cipherfmt_dump_buffer(tmp_buf, try_read_len);
-#endif
-
- ret = lib_aes_dec(tmp_buf, CIPHER_BLOCK_SIZE, tmp_buf2, CIPHER_BLOCK_SIZE);
- if (ret) {
- SMSG(true,"[%s] dec cipher block fail\n",MOD);
- ret = ERR_IMAGE_CIPHER_DEC_Fail;
- goto _decrypt_fail;
- }
- memcpy(buf_ptr, tmp_buf2, try_read_len);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump decipher part: 0x%x (try)\n",MOD, read_offset);
- sec_cipherfmt_dump_buffer(buf_ptr, try_read_len);
-#endif
- read_offset += try_read_len;
- buf_ptr += try_read_len;
- total_len -= try_read_len;
- }
- }
-
- /* read final plain text part, cause this part is not encrypted */
- if( total_len > 0 )
- {
- if (total_len != (read_sz = ASF_READ(fp, (char*)buf_ptr, total_len)))
- {
- SMSG(true,"[%s] read tail size '%d' != '%d'\n",MOD,read_sz,total_len);
- ret = ERR_IMAGE_CIPHER_READ_FAIL;
- goto _read_tail_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] sec_cipherfmt_decrypted - dump tail part: 0x%x\n",MOD, read_offset);
- sec_cipherfmt_dump_buffer(buf_ptr, total_len);
-#endif
- read_offset += total_len;
- buf_ptr += total_len;
- total_len -= total_len;
- }
-
- if( total_len != 0 )
- {
- SMSG(true,"[%s] image size is not correct\n",MOD);
- ret = ERR_IMAGE_CIPHER_WRONG_OPERATION;
- goto _image_size_wrong;
- }
-
- *data_offset = CIPHER_IMG_HEADER_SIZE;
- SMSG(true,"[%s] image descrypted successful (DS unlock)\n",MOD);
-
-_image_size_wrong:
-_read_tail_fail:
-_decrypt_fail:
-_read_cipher_size_wrong:
-_key_init_fail:
-_read_cipher_offset_fail:
-_hdr_not_found:
-_read_hdr_fail:
-
- ASF_PUT_DS
-
- return ret;
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_dev.c b/drivers/misc/mediatek/masp/asf/core/sec_dev.c
deleted file mode 100644
index 61fc8eceb..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_dev.c
+++ /dev/null
@@ -1,968 +0,0 @@
-#include <mach/sec_osal.h>
-#include <mach/mt_sec_hal.h>
-#include "sec_osal_light.h"
-#include "sec_boot_lib.h"
-#include "sec_boot.h"
-#include "sec_error.h"
-#include "sec_log.h"
-#include "sec_secroimg.h"
-
-
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-#include <linux/types.h>
-#include <linux/genhd.h>
-#include <linux/proc_fs.h>
-#include <linux/seq_file.h>
-#include <linux/crc32.h>
-#include <asm/uaccess.h>
-#include <linux/mmc/sd_misc.h>
-#include <mach/partition.h>
-
-#endif
-
-
-/**************************************************************************
- * MACRO
- **************************************************************************/
-#define MOD "ASF.DEV"
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-#define PARTINFO_TITLE "Name"
-#define USER_REGION_PATH "/dev/block/mmcblk0"
-#define BOOT_REGION0_PATH "/dev/block/mmcblk0boot0"
-#define USER_REGION_PART_PATH_PREFIX "/dev/block/platform/mtk-msdc.0/11230000.MSDC0/by-name/"
-
-#endif
-
-/**************************************************************************
- * GLOBAL VARIABLES
- *************************************************************************/
-MtdPart mtd_part_map[MAX_MTD_PARTITIONS];
-uint32 secro_img_off = 0;
-uint32 secro_img_mtd_num = 0;
-
-/**************************************************************************
- * LOCAL VARIABLES
- *************************************************************************/
-#if !defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-static bool dump_search_info = FALSE;
-#endif
-static bool dump_secro_info = FALSE;
-
-/**************************************************************************
- * EXTERNAL VARIABLES
- *************************************************************************/
-extern AND_ROMINFO_T rom_info;
-extern uchar sha1sum[];
-extern AND_SECROIMG_T secroimg;
-extern AND_SECROIMG_V5a_T secroimg_v5;
-extern uint32 secro_v3_off;
-extern bool bSecroExist;
-extern bool bSecroV5Exist;
-extern bool bSecroIntergiy;
-extern bool bSecroV5Intergiy;
-extern uint32 secro_img_off;
-extern uint32 secro_img_mtd_num;
-extern SECURE_INFO sec_info;
-
-
-
-/**************************************************************************
- * READ INFO
- **************************************************************************/
-int read_info (int part_index, uint32 part_off, uint32 search_region, char* info_name, uint32 info_name_len, uint32 info_sz, char* info_buf)
-{
- int ret = ERR_MTD_INFO_NOT_FOUND;
- char part_path[100];
- uint32 off = 0;
- uchar *buf;
-
- MtdRCtx *ctx = (MtdRCtx*) osal_kmalloc(sizeof(MtdRCtx));
-
- if (ctx == NULL)
- {
- ret = ERR_ROM_INFO_ALLOCATE_BUF_FAIL;
- goto _end;
- }
-
- ctx->buf = osal_kmalloc(search_region);
- memset(ctx->buf,0,search_region);
-
- if (ctx->buf == NULL)
- {
- ret = ERR_ROM_INFO_ALLOCATE_BUF_FAIL;
- goto _end;
- }
-
-
- /* ------------------------ */
- /* open file */
- /* ------------------------ */
- /* in order to keep key finding process securely,
- open file in kernel module */
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-
- if ((MAX_MTD_PARTITIONS + 1) == part_index)
- {
- // if part_index == MAX_MTD_PARTITIONS + 1 means read preloader
- mcpy(part_path,BOOT_REGION0_PATH,strlen(BOOT_REGION0_PATH));
- part_path[strlen(BOOT_REGION0_PATH)] = '\0';
- }
- else if (part_index < MAX_MTD_PARTITIONS)
- {
- mcpy(part_path,USER_REGION_PART_PATH_PREFIX,strlen(USER_REGION_PART_PATH_PREFIX));
- mcpy(part_path + strlen(USER_REGION_PART_PATH_PREFIX),mtd_part_map[part_index].name, strlen(mtd_part_map[part_index].name ));
- part_path[strlen(USER_REGION_PART_PATH_PREFIX) + strlen(mtd_part_map[part_index].name)] = '\0';
- }
- else
- {
- ret = ERR_INFO_OVER_MAX_PART_COUNT;
- goto _end;
- }
-
-#else
- if(TRUE == sec_usif_enabled())
- {
- sec_usif_part_path(part_index,part_path,sizeof(part_path));
- if(FALSE == dump_search_info)
- {
- SMSG(TRUE,"[%s] open '%s'\n",MOD,part_path);
- dump_search_info = TRUE;
- }
- }
- else
- {
- sprintf(part_path, "/dev/mtd/mtd%d", part_index);
- if(FALSE == dump_search_info)
- {
- SMSG(TRUE,"[%s] open '%s'\n",MOD,part_path);
- dump_search_info = TRUE;
- }
- }
-
-#endif
-
- //SMSG(TRUE,"[%s] open '%s'\n",MOD,part_path);
-
- ctx->fd = ASF_OPEN(part_path);
-
- if (ASF_IS_ERR(ctx->fd))
- {
- SMSG(true,"[%s] open fail\n",MOD);
- ret = ERR_INFO_PART_NOT_FOUND;
- goto _open_fail;
- }
-
- /* ------------------------ */
- /* read partition */
- /* ------------------------ */
- /* configure file system type */
- osal_set_kernel_fs();
-
- /* adjust read off */
- ASF_SEEK_SET(ctx->fd,part_off);
-
- /* read partition */
- if(0 >= (ret = ASF_READ(ctx->fd,ctx->buf,search_region)))
- {
- SMSG(TRUE,"[%s] read fail (%d)\n",MOD,ret);
- ret = ERR_ROM_INFO_MTD_READ_FAIL;
- goto _end;
- }
- else
- {
-
- /* ------------------------ */
- /* search info */
- /* ------------------------ */
- for(off = 0; off<(search_region-info_sz); off++)
- {
- buf = ctx->buf + off;
-
- if(0 == strncmp(buf,info_name,info_name_len))
- {
- osal_mtd_lock();
-
- /* ------------------------ */
- /* fill info */
- /* ------------------------ */
- mcpy(info_buf, buf, info_sz);
-
- /* --------------------------------------------- */
- /* keep secro v3 offset, for v5 search usage. */
- /* --------------------------------------------- */
-
- if (info_buf == (char*)&secroimg)
- {
- secro_v3_off = off;
- SMSG(TRUE,"[%s] keep sro v3 off: 0x%x\n",MOD,off);
- }
-
- ret = SEC_OK;
- osal_mtd_unlock();
- break;
- }
- }
- }
-
-_end:
- ASF_CLOSE(ctx->fd);
- osal_restore_fs();
-
-_open_fail :
- osal_kfree(ctx->buf);
- osal_kfree(ctx);
- return ret;
-}
-
-/**************************************************************************
- * DUMP PARTITION
- **************************************************************************/
-void sec_dev_dump_part(void)
-{
- uint32 i = 0;
-
- for(i = 0; i < MAX_MTD_PARTITIONS; i++)
- {
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
- SMSG(TRUE,"[%s] #%2d, part %15s, offset 0x%llx, sz 0x%llx\n",MOD,i,
- mtd_part_map[i].name,
- mtd_part_map[i].off,
- mtd_part_map[i].sz);
-
-#else
- SMSG(TRUE,"[%s] #%2d, part %10s, offset 0x%8x, sz 0x%8x\n",MOD,i,
- mtd_part_map[i].name,
- mtd_part_map[i].off,
- mtd_part_map[i].sz);
-#endif
- }
-}
-
-/**************************************************************************
- * FIND DEVICE PARTITION
- **************************************************************************/
-void sec_dev_find_parts(void)
-{
- ASF_FILE fd;
- const uint32 buf_len = 2048;
- char *buf = osal_kmalloc(buf_len);
- char *pmtdbufp;
-
- uint32 mtd_part_cnt = 0;
- ssize_t pm_sz;
- int cnt;
-#if !defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
- uint32 off = 0;
- uint32 rn = 0;
-#endif
-
- osal_set_kernel_fs();
-
- /* -------------------------- */
- /* open proc device */
- /* -------------------------- */
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-
- /* -------------------------- */
- /* open proc/partinfo */
- /* -------------------------- */
- SMSG(TRUE,"[%s] open /proc/partinfo\n",MOD);
- fd = ASF_OPEN("/proc/partinfo");
-
-
-#else
-
- if(TRUE == sec_usif_enabled())
- {
- /* -------------------------- */
- /* open proc/dumchar_info */
- /* -------------------------- */
- SMSG(TRUE,"[%s] open /proc/dumchar_info\n",MOD);
- fd = ASF_OPEN("/proc/dumchar_info");
- }
- else
- {
- /* -------------------------- */
- /* open proc/mtd */
- /* -------------------------- */
- SMSG(TRUE,"[%s] open /proc/mtd\n",MOD);
- fd = ASF_OPEN("/proc/mtd");
- }
-
-#endif
-
-
- if (ASF_IS_ERR(fd))
- {
- SMSG(TRUE,"[%s] open /proc/* failed\n",MOD);
- goto _end;
- }
-
-
- buf[buf_len - 1] = '\0';
- pm_sz = ASF_READ(fd, buf, buf_len - 1);
- pmtdbufp = buf;
-
- /* -------------------------- */
- /* parsing proc device */
- /* -------------------------- */
- while (pm_sz > 0)
- {
-
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
- int m_num;
- unsigned long long m_sz, m_off;
- char m_name[16];
- m_name[0] = '\0';
- m_num = -1;
-
- m_num ++;
-
- /* -------------------------- */
- /* parsing proc/parinfo */
- /* -------------------------- */
- cnt = sscanf(pmtdbufp, "%15s %llx %llx",m_name, &m_off, &m_sz);
- //SMSG(TRUE,"[%s] find parts %s, off 0x%llx, size 0x%llx\n",MOD,m_name,m_off,m_sz);
-
-
- if (mtd_part_cnt < MAX_MTD_PARTITIONS)
- {
- if (0 != mcmp(m_name,PARTINFO_TITLE,strlen(PARTINFO_TITLE)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, m_name, strlen(m_name));
- /* fill partition size */
- mtd_part_map[mtd_part_cnt].sz = m_sz;
-
- /* calculate partition off */
- mtd_part_map[mtd_part_cnt].off = m_off;
- /* part count */
-
- if(0 == mcmp(m_name,GPT_SECRO,strlen(GPT_SECRO)))
- {
- secro_img_mtd_num = mtd_part_cnt;
- }
-
- mtd_part_cnt++;
- }
- }
- else
- {
- SMSG(TRUE,"too many mtd partitions\n");
- }
-
-#else
- int m_num, m_sz, mtd_e_sz;
- char m_name[16];
- m_name[0] = '\0';
- m_num = -1;
-
- m_num ++;
-
- if(TRUE == sec_usif_enabled())
- {
- /* -------------------------- */
- /* parsing proc/dumchar_info */
- /* -------------------------- */
- cnt = sscanf(pmtdbufp, "%15s %x %x %x",m_name, &m_sz, &mtd_e_sz, &rn);
- //SMSG(TRUE,"[%s] find parts %s, size 0x%x, cnt 0x%x, rn 0x%x\n",MOD,m_name,m_sz,cnt,rn);
-
- if ((cnt == 4) && (rn == 2))
- {
-
- if (mtd_part_cnt < MAX_MTD_PARTITIONS)
- {
-
- /* ===================== */
- /* uboot */
- /* ===================== */
- if(0 == mcmp(m_name,USIF_UBOOT,strlen(USIF_UBOOT)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_UBOOT, strlen(PL_UBOOT));
- }
- /* ===================== */
- /* logo */
- /* ===================== */
- else if(0 == mcmp(m_name,USIF_LOGO,strlen(USIF_LOGO)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_LOGO, strlen(PL_LOGO));
- }
- /* ===================== */
- /* boot image */
- /* ===================== */
- else if(0 == mcmp(m_name,USIF_BOOTIMG,strlen(USIF_BOOTIMG)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_BOOTIMG, strlen(PL_BOOTIMG));
- }
- /* ===================== */
- /* user data */
- /* ===================== */
- else if(0 == mcmp(m_name,USIF_USER,strlen(USIF_USER)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_USER, strlen(PL_USER));
- }
- /* ===================== */
- /* android system image */
- /* ===================== */
- else if(0 == mcmp(m_name,USIF_ANDSYSIMG,strlen(USIF_ANDSYSIMG)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_ANDSYSIMG, strlen(PL_ANDSYSIMG));
- }
- /* ===================== */
- /* recovery */
- /* ===================== */
- else if(0 == mcmp(m_name,USIF_RECOVERY,strlen(USIF_RECOVERY)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_RECOVERY, strlen(PL_RECOVERY));
- }
- /* ===================== */
- /* secroimg */
- /* ===================== */
- else if(0 == mcmp(m_name,USIF_SECRO,strlen(USIF_SECRO)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_SECRO, strlen(PL_SECRO));
- secro_img_mtd_num = mtd_part_cnt;
- }
- /* ===================== */
- /* other */
- /* ===================== */
- else
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, m_name, sizeof(m_name)-1);
- }
-
- /* fill partition size */
- mtd_part_map[mtd_part_cnt].sz = m_sz;
-
- /* calculate partition off */
- mtd_part_map[mtd_part_cnt].off = off;
-
- /* update off and part count */
- off += m_sz;
- mtd_part_cnt++;
- }
- else
- {
- SMSG(TRUE,"too many mtd partitions\n");
- }
- }
-
- }
- else
- {
- /* -------------------------- */
- /* parsing proc/mtd */
- /* -------------------------- */
- cnt = sscanf(pmtdbufp, "mtd%d: %x %x %15s",&m_num, &m_sz, &mtd_e_sz, m_name);
-
- if ((cnt == 4) && (m_name[0] == '"'))
- {
- char *x = strchr(m_name + 1, '"');
-
- if (x)
- {
- *x = 0;
- }
-
- if (mtd_part_cnt < MAX_MTD_PARTITIONS)
- {
- /* ===================== */
- /* uboot */
- /* ===================== */
- if(0 == mcmp(m_name+1,MTD_UBOOT,strlen(MTD_UBOOT)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_UBOOT, strlen(PL_UBOOT));
- }
- /* ===================== */
- /* logo */
- /* ===================== */
- else if(0 == mcmp(m_name+1,MTD_LOGO,strlen(MTD_LOGO)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_LOGO, strlen(PL_LOGO));
- }
- /* ===================== */
- /* boot image */
- /* ===================== */
- else if(0 == mcmp(m_name+1,MTD_BOOTIMG,strlen(MTD_BOOTIMG)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_BOOTIMG, strlen(PL_BOOTIMG));
- }
- /* ===================== */
- /* user data */
- /* ===================== */
- else if(0 == mcmp(m_name+1,MTD_USER,strlen(MTD_USER)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_USER, strlen(PL_USER));
- }
- /* ===================== */
- /* android system image */
- /* ===================== */
- else if(0 == mcmp(m_name+1,MTD_ANDSYSIMG,strlen(MTD_ANDSYSIMG)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_ANDSYSIMG, strlen(PL_ANDSYSIMG));
- }
- /* ===================== */
- /* recovery */
- /* ===================== */
- else if(0 == mcmp(m_name+1,MTD_RECOVERY,strlen(MTD_RECOVERY)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_RECOVERY, strlen(PL_RECOVERY));
- }
- /* ===================== */
- /* secroimg */
- /* ===================== */
- else if(0 == mcmp(m_name+1,MTD_SECRO,strlen(MTD_SECRO)))
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, PL_SECRO, strlen(PL_SECRO));
- secro_img_mtd_num = mtd_part_cnt;
-
- }
- /* ===================== */
- /* other */
- /* ===================== */
- else
- {
- mcpy(mtd_part_map[mtd_part_cnt].name, m_name+1, sizeof(m_name)-1);
- }
-
- /* fill partition size */
- mtd_part_map[mtd_part_cnt].sz = m_sz;
-
- /* calculate partition off */
- mtd_part_map[mtd_part_cnt].off = off;
-
- /* calculate partition erase size */
- mtd_part_map[mtd_part_cnt].e_size = mtd_e_sz;
-
- /* update off and part count */
- off += m_sz;
- mtd_part_cnt++;
- }
- else
- {
- SMSG(TRUE,"too many mtd partitions\n");
- }
- }
- }
-
-#endif
- while (pm_sz > 0 && *pmtdbufp != '\n')
- {
- pmtdbufp++;
- pm_sz--;
- }
-
- if (pm_sz > 0)
- {
- pmtdbufp++;
- pm_sz--;
- }
- }
-
- ASF_CLOSE(fd);
-
-
-_end:
-
- osal_kfree(buf);
- osal_restore_fs();
-
- /* ------------------------ */
- /* dump partition */
- /* ------------------------ */
- //sec_dev_dump_part();
-}
-
-/**************************************************************************
- * READ ROM INFO
- **************************************************************************/
-int sec_dev_read_rom_info(void)
-{
- int ret = SEC_OK;
- uint32 search_offset = ROM_INFO_SEARCH_START;
- uint32 search_len = ROM_INFO_SEARCH_LEN;
-
-#if !defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
- uint32 mtd_num = MTD_PL_NUM;
- uint32 mtd_off = ROM_INFO_SEARCH_START;
-#endif
-
- SMSG(TRUE,"search starts from '0x%x'\n",ROM_INFO_SEARCH_START);
-
- /* ------------------------ */
- /* check size */
- /* ------------------------ */
- COMPILE_ASSERT(AND_ROM_INFO_SIZE == sizeof(AND_ROMINFO_T));
-
-
- /* ------------------------ */
- /* read rom info */
- /* ------------------------ */
-#if defined(CONFIG_MTK_GPT_SCHEME_SUPPORT)
-
- // in GPT case, preloader is not in /proc/partinfo
- for(search_offset=ROM_INFO_SEARCH_START; search_offset<(search_len+ROM_INFO_SEARCH_START); search_offset+=ROM_INFO_SEARCH_REGION)
- {
-
- ret = read_info ( (MAX_MTD_PARTITIONS + 1), search_offset, ROM_INFO_SEARCH_REGION, RI_NAME, RI_NAME_LEN, sizeof(AND_ROMINFO_T), (uchar*)&rom_info) ;
-
- if(SEC_OK == ret)
- {
- /* ------------------------ */
- /* double check rom info */
- /* ------------------------ */
- if(0 == mcmp(rom_info.m_id,RI_NAME,RI_NAME_LEN))
- {
- SMSG(TRUE,"[%s] ROM INFO ver '0x%x', ID '%s', 0x%x, 0x%x\n",MOD,rom_info.m_rom_info_ver,rom_info.m_id,
- rom_info.m_SEC_CTRL.m_sec_usb_dl, rom_info.m_SEC_CTRL.m_sec_boot);
- goto _end;
- }
- }
- }
-
-#else
- if(FALSE == sec_usif_enabled())
- {
- /* Search from Block 1 and len is limited in preloader*/
- mtd_off = mtd_part_map[mtd_num].e_size;
- search_len = (mtd_part_map[mtd_num].sz-mtd_part_map[mtd_num].e_size);
- }
- /* read 1MB data to search rom info */
- for(search_offset=ROM_INFO_SEARCH_START; search_offset<(search_len+ROM_INFO_SEARCH_START); search_offset+=ROM_INFO_SEARCH_REGION)
- {
- /* search partition */
- if(mtd_off < mtd_part_map[mtd_num].sz)
- {
- if(FALSE == dump_search_info)
- {
- SMSG(TRUE,"dev %2d, 0x%08x, 0x%08x\n", mtd_num, mtd_off, search_offset);
- }
-
- ret = read_info ( mtd_num, mtd_off, ROM_INFO_SEARCH_REGION, RI_NAME, RI_NAME_LEN, sizeof(AND_ROMINFO_T), (uchar*)&rom_info) ;
-
- if(SEC_OK == ret)
- {
- /* ------------------------ */
- /* double check rom info */
- /* ------------------------ */
- if(0 == mcmp(rom_info.m_id,RI_NAME,RI_NAME_LEN))
- {
- SMSG(TRUE,"[%s] ROM INFO ver '0x%x', ID '%s', 0x%x, 0x%x\n",MOD,rom_info.m_rom_info_ver,rom_info.m_id,
- rom_info.m_SEC_CTRL.m_sec_usb_dl, rom_info.m_SEC_CTRL.m_sec_boot);
- goto _end;
- }
- }
- }
-
- /* next should move to next partition ? */
- if(search_offset >= mtd_part_map[mtd_num+1].off)
- {
- mtd_num ++;
- mtd_off = 0;
- search_offset -= ROM_INFO_SEARCH_REGION;
- }
- else
- {
- mtd_off += ROM_INFO_SEARCH_REGION;
- }
- }
-
-#endif
-
- SMSG(TRUE,"[%s] ROM INFO not found\n",MOD);
-
- ret = ERR_ROM_INFO_MTD_NOT_FOUND;
-
-_end:
-
- return ret;
-}
-
-/**************************************************************************
- * READ ANDROID ANTI-CLONE REGION
- **************************************************************************/
-int sec_dev_read_secroimg(void)
-{
- int ret = SEC_OK;
-
- uint32 search_offset = SECRO_SEARCH_START;
- uint32 search_len = SECRO_SEARCH_LEN;
-
- uint32 mtd_num;
- uint32 mtd_off = SECRO_SEARCH_START;
-
- const uint32 img_len = rom_info.m_sec_ro_length;
- const uint32 cipher_len = sizeof(AND_AC_ANDRO_T) + sizeof(AND_AC_MD_T)+ sizeof(AND_AC_MD2_T);
-
- /* ------------------------ */
- /* check status */
- /* ------------------------ */
- if(0 == secro_img_mtd_num)
- {
- ret = ERR_SECROIMG_PART_NOT_FOUND;
- goto _end;
- }
-
- mtd_num = secro_img_mtd_num;
-
- /* ------------------------ */
- /* check parameter */
- /* ------------------------ */
- if(0 == img_len)
- {
- ret = ERR_SECROIMG_INVALID_IMG_LEN;
- goto _end;
- }
-
- /* ------------------------------------------------------- */
- /* size should minus padding part, to fit secro v5 design */
- /* ------------------------------------------------------- */
- if(img_len != sizeof(secroimg) - sizeof(AND_SECROIMG_PADDING_T))
- {
- ret = ERR_SECROIMG_LEN_INCONSISTENT_WITH_PL;
- goto _end;
- }
-
-
- #ifdef CONFIG_ARM64
- SMSG(TRUE,"[%s] SECRO v3 image len '0x%lx'\n",MOD, sizeof(secroimg));
- #else
- SMSG(TRUE,"[%s] SECRO v3 image len '0x%x'\n",MOD, sizeof(secroimg));
- #endif
-
- /* ------------------------ */
- /* find ac region */
- /* ------------------------ */
-
- /* read 1MB nand flash data to search rom info */
- for(search_offset = SECRO_SEARCH_START; search_offset < (search_len + SECRO_SEARCH_START); search_offset += SECRO_SEARCH_REGION)
- {
- /* search partition */
- if(mtd_off < mtd_part_map[mtd_num].sz)
- {
- if(FALSE == dump_secro_info)
- {
- SMSG(TRUE,"dev %2d, 0x%08x, 0x%08x\n", mtd_num, mtd_off, search_offset);
- dump_secro_info = TRUE;
- }
-
- /* ------------------------ */
- /* search secro image */
- /* ------------------------ */
- ret = read_info (mtd_num, mtd_off, SECRO_SEARCH_REGION, ROM_SEC_AC_REGION_ID, ROM_SEC_AC_REGION_ID_LEN,
- sizeof(secroimg), (uchar*)&secroimg);
-
- if(SEC_OK == ret)
- {
- SMSG(TRUE,"[%s] SECRO v3 img is found (lock)\n",MOD);
-
- /* ------------------------ */
- /* decrypt secro image */
- /* ------------------------ */
- osal_secro_lock();
-
- //dump_buf((uchar*)&secroimg.m_andro,0x4);
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_dec((uchar*)&secroimg.m_andro, cipher_len, TRUE,HACC_USER1,TRUE);
- }
- //dump_buf((uchar*)&secroimg.m_andro,0x4);
-
- /* ------------------------ */
- /* check integrity */
- /* ------------------------ */
- if(SEC_OK != (ret = sec_secro_check()))
- {
- osal_secro_unlock();
- goto _end;
- }
-
- /* ------------------------ */
- /* encrypt secro image */
- /* ------------------------ */
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_enc((uchar*)&secroimg.m_andro, cipher_len, TRUE,FALSE,TRUE);
- }
- //dump_buf((uchar*)&secroimg.m_andro,0x4);
-
- /* ------------------------ */
- /* SECROIMG is valid */
- /* ------------------------ */
- bSecroExist = TRUE;
-
- osal_secro_unlock();
-
- goto _end;
-
- }
-
- }
-
- /* next should move to next partition ? */
- if(search_offset >= mtd_part_map[mtd_num+1].off)
- {
- mtd_num ++;
- mtd_off = 0;
- search_offset -= SECRO_SEARCH_REGION;
- }
- else
- {
- mtd_off += SECRO_SEARCH_REGION;
- }
- }
-
- ret = ERR_SECROIMG_MTD_NOT_FOUND;
-
-_end:
-
- return ret;
-}
-
-
-/**************************************************************************
- * READ SECRO V5 format, md_index starting at 0, up to 9.
- **************************************************************************/
-int sec_dev_read_secroimg_v5(uint32 md_index)
-{
- int ret = SEC_OK;
-
- //uint32 search_start = SECRO_SEARCH_START;
- uint32 search_offset = 0;
- //uint32 search_len = SECRO_SEARCH_LEN;
-
- uint32 mtd_num;
- uint32 mtd_off = SECRO_SEARCH_START;
-
- const uint32 img_len = AND_SECROIMG_V5a_SIZE;
- const uint32 cipher_len = sizeof(AND_AC_MD_INFO_V5a_T) + sizeof(AND_AC_MD_V5a_T);
-
- /* ------------------------ */
- /* check status */
- /* ------------------------ */
- if(0 == secro_img_mtd_num)
- {
- ret = ERR_SECROIMG_PART_NOT_FOUND;
- goto _end;
- }
-
- mtd_num = secro_img_mtd_num;
-
- /* ------------------------ */
- /* check parameter */
- /* ------------------------ */
- if(0 == img_len)
- {
- ret = ERR_SECROIMG_INVALID_IMG_LEN;
- goto _end;
- }
-
- if(img_len != sizeof(secroimg_v5))
- {
- ret = ERR_SECROIMG_LEN_INCONSISTENT_WITH_PL;
- goto _end;
- }
-
- #ifdef CONFIG_ARM64
- SMSG(TRUE,"[%s] SECRO v5 image len '0x%lx'\n",MOD, sizeof(secroimg_v5));
- #else
- SMSG(TRUE,"[%s] SECRO v5 image len '0x%x'\n",MOD, sizeof(secroimg_v5));
- #endif
- SMSG(TRUE,"[%s] md index '0x%x'\n",MOD, md_index);
-
- /* ------------------------ */
- /* find ac region */
- /* ------------------------ */
-
- /* ------------------------------------------------------- */
- /* secro v3 offset should be known during sec_boot_init */
- /* ------------------------------------------------------- */
- mtd_off = secro_v3_off;
-
- if(FALSE == dump_secro_info)
- {
- SMSG(TRUE,"dev %2d, 0x%08x, 0x%08x\n", mtd_num, mtd_off, search_offset);
- dump_secro_info = TRUE;
- }
-
-
- /* ------------------------------------------------------- */
- /* if secro v3 offset is not updated during sec_boot_init */
- /* ------------------------------------------------------- */
- if (MAX_SECRO_V3_OFFSET == mtd_off)
- {
- ret = ERR_SECROIMG_V3_OFFSET_NOT_INIT;
- goto _end;
- }
-
- mtd_off += (md_index + 1)*AND_SECROIMG_V5a_SIZE;
-
- /* ------------------------ */
- /* search secro image */
- /* ------------------------ */
- ret = read_info (mtd_num, mtd_off, SECRO_SEARCH_REGION, ROM_SEC_AC_REGION_ID, ROM_SEC_AC_REGION_ID_LEN, img_len, (uchar*)&secroimg_v5);
-
- if(SEC_OK == ret)
- {
- SMSG(TRUE,"[%s] SECRO v5 img is found (lock)\n",MOD);
-
- /* ------------------------ */
- /* decrypt secro image */
- /* ------------------------ */
-
- osal_secro_v5_lock();
-
-
- dump_buf((uchar*)&secroimg_v5.m_md_info_v5a,0x4);
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_dec((uchar*)&secroimg_v5.m_md_info_v5a, cipher_len, TRUE,HACC_USER1,TRUE);
- }
- dump_buf((uchar*)&secroimg_v5.m_md_info_v5a,0x4);
-
-
- /* ------------------------ */
- /* check integrity */
- /* ------------------------ */
- if(SEC_OK != (ret = sec_secro_v5_check()))
- {
- osal_secro_v5_unlock();
- goto _end;
- }
-
- /* ------------------------ */
- /* encrypt secro image */
- /* ------------------------ */
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_enc((uchar*)&secroimg_v5.m_md_info_v5a, cipher_len, TRUE,FALSE,TRUE);
- }
- dump_buf((uchar*)&secroimg_v5.m_md_info_v5a,0x4);
-
- /* ------------------------ */
- /* SECROIMG is valid */
- /* ------------------------ */
- bSecroV5Exist = TRUE;
-
- osal_secro_v5_unlock();
-
- goto _end;
-
- }
-
-
-
- ret = ERR_SECROIMG_MTD_NOT_FOUND;
-
-_end:
-
- return ret;
-}
-
-
-unsigned int sec_dev_read_image(char* part_name, char* buf, u64 off, unsigned int sz, unsigned int image_type)
-{
- // not implemented yet.
- return SEC_OK;
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_dev_util.c b/drivers/misc/mediatek/masp/asf/core/sec_dev_util.c
deleted file mode 100644
index 33adf310f..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_dev_util.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/**************************************************************************
- * INCLUDE LIBRARY
- **************************************************************************/
-#include "sec_boot_lib.h"
-
-/**************************************************************************
- * MACRO
- *************************************************************************/
-#define MOD "ASF.DEV"
-
-/**************************************************************************
- * EXTERNAL VARIABLES
- *************************************************************************/
-extern SECURE_INFO sec_info;
-
-/**************************************************************************
- * PART NAME QUERY (MTD OR USIF)
- **************************************************************************/
-char* part2pl (char* part_name)
-{
-
- if(TRUE == sec_usif_enabled())
- {
- return usif2pl(part_name);
- }
- else
- {
- return mtd2pl(part_name);
- }
-}
-
-char* pl2part (char* part_name)
-{
-
- if(TRUE == sec_usif_enabled())
- {
- return pl2usif(part_name);
- }
- else
- {
- return pl2mtd(part_name);
- }
-}
-
-/**************************************************************************
- * GET ANDROID NAME
- **************************************************************************/
-char* get_android_name(void)
-{
- return pl2part(mtd2pl(MTD_ANDSYSIMG));
-}
-
-/**************************************************************************
- * GET SECRO NAME
- **************************************************************************/
-char* get_secro_name(void)
-{
- return pl2part(mtd2pl(MTD_SECRO));
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_fsutil_inter.c b/drivers/misc/mediatek/masp/asf/core/sec_fsutil_inter.c
deleted file mode 100644
index d4f57db5b..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_fsutil_inter.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include "sec_boot_lib.h"
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "ASF.FS"
-
-/**************************************************************************
- * EXTERNAL VARIABLES
- **************************************************************************/
-extern bool bSecroExist;
-extern bool bSecroIntergiy;
-
-/**************************************************************************
- * READ SECRO
- **************************************************************************/
-uint32 sec_fs_read_secroimg (char* path, char* buf)
-{
- uint32 ret = SEC_OK;
- const uint32 size = sizeof(AND_SECROIMG_T);
- uint32 temp = 0;
- ASF_FILE fd;
-
- /* ------------------------ */
- /* check parameter */
- /* ------------------------ */
- SMSG(TRUE,"[%s] open '%s'\n",MOD,path);
- if(0 == size)
- {
- ret = ERR_FS_SECRO_READ_SIZE_CANNOT_BE_ZERO;
- goto _end;
- }
-
- /* ------------------------ */
- /* open secro */
- /* ------------------------ */
- fd = ASF_OPEN(path);
-
- if (ASF_IS_ERR(fd))
- {
- ret = ERR_FS_SECRO_OPEN_FAIL;
- goto _open_fail;
- }
-
- /* ------------------------ */
- /* read secro */
- /* ------------------------ */
- /* configure file system type */
- osal_set_kernel_fs();
-
- /* adjust read off */
- ASF_SEEK_SET(fd,0);
-
- /* read secro content */
- if(0 >= (temp = ASF_READ(fd,buf,size)))
- {
- ret = ERR_FS_SECRO_READ_FAIL;
- goto _end;
- }
-
- if(size != temp)
- {
- SMSG(TRUE,"[%s] size '0x%x', read '0x%x'\n",MOD,size,temp);
- ret = ERR_FS_SECRO_READ_WRONG_SIZE;
- goto _end;
- }
-
- /* ------------------------ */
- /* check integrity */
- /* ------------------------ */
- if(SEC_OK != (ret = sec_secro_check()))
- {
- goto _end;
- }
-
- /* ------------------------ */
- /* SECROIMG is valid */
- /* ------------------------ */
- bSecroExist = TRUE;
-
-_end:
- ASF_CLOSE(fd);
- osal_restore_fs();
-
-_open_fail:
- return ret;
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_hdr.c b/drivers/misc/mediatek/masp/asf/core/sec_hdr.c
deleted file mode 100644
index 0e498a7b8..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_hdr.c
+++ /dev/null
@@ -1,295 +0,0 @@
-#include "sec_hdr.h"
-
-/**************************************************************************
- * INTERNAL VARIABLES
- **************************************************************************/
-static SEC_IMG_HEADER_VER sec_ver = UNSET;
-
-/**************************************************************************
- * GET VALUE
- **************************************************************************/
-uint32 shdr_magic (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.magic_number;
- case SEC_HDR_V2:
- return sec_hdr->v2.magic_number;
- case SEC_HDR_V3:
- return sec_hdr->v3.magic_number;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uchar* shdr_cust_name (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.cust_name;
- case SEC_HDR_V2:
- return sec_hdr->v2.cust_name;
- case SEC_HDR_V3:
- return sec_hdr->v3.cust_name;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_cust_name_len (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sizeof(sec_hdr->v1.cust_name);
- case SEC_HDR_V2:
- return sizeof(sec_hdr->v2.cust_name);
- case SEC_HDR_V3:
- return sizeof(sec_hdr->v3.cust_name);
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_img_ver (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.image_version;
- case SEC_HDR_V2:
- return sec_hdr->v2.image_version;
- case SEC_HDR_V3:
- return sec_hdr->v3.image_version;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_img_len (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.image_length;
- case SEC_HDR_V2:
- return sec_hdr->v2.image_length;
- case SEC_HDR_V3:
- return sec_hdr->v3.image_length;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_img_offset (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.image_offset;
- case SEC_HDR_V2:
- return sec_hdr->v2.image_offset;
- case SEC_HDR_V3:
- return sec_hdr->v3.image_offset;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_sign_len (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.sign_length;
- case SEC_HDR_V2:
- return sec_hdr->v2.sign_length;
- case SEC_HDR_V3:
- return sec_hdr->v3.sign_length;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_sign_offset (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.sign_offset;
- case SEC_HDR_V2:
- return sec_hdr->v2.sign_offset;
- case SEC_HDR_V3:
- return sec_hdr->v3.sign_offset;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_sig_len (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.signature_length;
- case SEC_HDR_V2:
- return sec_hdr->v2.signature_length;
- case SEC_HDR_V3:
- return sec_hdr->v3.signature_length;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-uint32 shdr_sig_offset (SEC_IMG_HEADER_U* sec_hdr)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- return sec_hdr->v1.signature_offset;
- case SEC_HDR_V2:
- return sec_hdr->v2.signature_offset;
- case SEC_HDR_V3:
- return sec_hdr->v3.signature_offset;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-/**************************************************************************
- * SET VALUE
- **************************************************************************/
-void set_shdr_magic (SEC_IMG_HEADER_U* sec_hdr, uint32 val)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- sec_hdr->v1.magic_number= val;
- break;
- case SEC_HDR_V2:
- sec_hdr->v2.magic_number = val;
- break;
- case SEC_HDR_V3:
- sec_hdr->v3.magic_number = val;
- default:
- SEC_ASSERT(0);
- }
-}
-
-void set_shdr_img_ver (SEC_IMG_HEADER_U* sec_hdr, uint32 ver)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- sec_hdr->v1.image_version = ver;
- break;
- case SEC_HDR_V2:
- sec_hdr->v2.image_version = ver;
- break;
- case SEC_HDR_V3:
- sec_hdr->v3.image_version = ver;
- default:
- SEC_ASSERT(0);
- }
-}
-
-void set_shdr_cust_name (SEC_IMG_HEADER_U* sec_hdr, uchar* name, uint32 len)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- memset(sec_hdr->v1.cust_name,0,sizeof(sec_hdr->v1.cust_name));
- mcpy(sec_hdr->v1.cust_name,name,len);
- break;
- case SEC_HDR_V2:
- memset(sec_hdr->v2.cust_name,0,sizeof(sec_hdr->v2.cust_name));
- mcpy(sec_hdr->v2.cust_name,name,len);
- break;
- case SEC_HDR_V3:
- memset(sec_hdr->v3.cust_name,0,sizeof(sec_hdr->v3.cust_name));
- mcpy(sec_hdr->v3.cust_name,name,len);
- break;
- default:
- SEC_ASSERT(0);
- }
-}
-
-void set_shdr_sign_len (SEC_IMG_HEADER_U* sec_hdr, uint32 val)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- sec_hdr->v1.sign_length = val;
- break;
- case SEC_HDR_V2:
- sec_hdr->v2.sign_length = val;
- break;
- case SEC_HDR_V3:
- sec_hdr->v3.sign_length = val;
- break;
- default:
- SEC_ASSERT(0);
- }
-}
-
-void set_shdr_sign_offset (SEC_IMG_HEADER_U* sec_hdr, uint32 val)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- sec_hdr->v1.sign_offset = val;
- break;
- case SEC_HDR_V2:
- sec_hdr->v2.sign_offset = val;
- break;
- case SEC_HDR_V3:
- sec_hdr->v3.sign_offset = val;
- break;
- default:
- SEC_ASSERT(0);
- }
-}
-
-/**************************************************************************
- * VERSION
- **************************************************************************/
-
-SEC_IMG_HEADER_VER get_shdr_ver (void)
-{
- switch(sec_ver)
- {
- case SEC_HDR_V1:
- case SEC_HDR_V2:
- case SEC_HDR_V3:
- return sec_ver;
- default:
- SEC_ASSERT(0);
- return 0;
- }
-}
-
-void set_shdr_ver (SEC_IMG_HEADER_VER ver)
-{
- switch(ver)
- {
- case SEC_HDR_V1:
- case SEC_HDR_V2:
- case SEC_HDR_V3:
- sec_ver = ver;
- break;
- default:
- SEC_ASSERT(0);
- }
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_key_util.c b/drivers/misc/mediatek/masp/asf/core/sec_key_util.c
deleted file mode 100644
index bc4baf736..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_key_util.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "sec_typedef.h"
-#include "sec_boot.h"
-
-/**************************************************************************
- * DEFINITIONS
- **************************************************************************/
-#define MOD "SEC_KEY_UTIL"
-
-/**************************************************************************
- * KEY SECRET
- **************************************************************************/
-#define ENCODE_MAGIC (0x1)
-
-void sec_decode_key(uchar* key, uint32 key_len, uchar* seed, uint32 seed_len)
-{
- uint32 i = 0;
-
- for(i=0; i<key_len; i++)
- {
- key[i] -= seed[i%seed_len];
- key[i] -= ENCODE_MAGIC;
- }
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_mod_core.c b/drivers/misc/mediatek/masp/asf/core/sec_mod_core.c
deleted file mode 100644
index 922be8189..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_mod_core.c
+++ /dev/null
@@ -1,469 +0,0 @@
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-
-/******************************************************************************
- * INCLUDE LINUX HEADER
- ******************************************************************************/
-#include <linux/module.h>
-#include <asm/uaccess.h>
-#include <linux/ioctl.h>
-
-/******************************************************************************
- * INCLUDE LIBRARY
- ******************************************************************************/
-#include <mach/mt_sec_hal.h>
-#include "sec_boot_lib.h"
-#include "masp_version.h"
-#include "sec_ioctl.h"
-#include "sec_osal_light.h"
-#include "sec_nvram.h"
-
-#define MOD "ASF"
-#define HEVC_BLK_LEN 20480
-
-#define CI_BLK_SIZE 16
-#define CI_BLK_ALIGN(len) ( ((len)+CI_BLK_SIZE-1) & ~(CI_BLK_SIZE-1) )
-
-/**************************************************************************
- * GLOBAL VARIABLES
- **************************************************************************/
-typedef struct
-{
- unsigned char buf[HEVC_BLK_LEN];
- unsigned int len;
-} HEVC_BLK;
-HEVC_BLK hevc_blk;
-
-
-/**************************************************************************
- * EXTERNAL VARIABLE
- **************************************************************************/
-extern MtdPart mtd_part_map[];
-extern bool bMsg;
-extern struct semaphore hacc_sem;
-
-/**************************************************************************
- * EXTERNAL FUNCTION
- **************************************************************************/
-extern int sec_get_random_id(unsigned int *rid);
-extern void sec_update_lks(unsigned char tr, unsigned char dn, unsigned char fb_ulk);
-extern void sec_core_init (void);
-
-static uint lks = 2;//if sec is not enabled, this param will not be updated
-module_param(lks, uint, S_IRUSR/*|S_IWUSR|S_IWGRP*/|S_IRGRP|S_IROTH); /* r--r--r-- */
-MODULE_PARM_DESC(lks, "A device lks parameter under sysfs (0=NL, 1=L, 2=NA)");
-
-void sec_update_lks(unsigned char tr, unsigned char dn, unsigned char fb_ulk)
-{
- if(fb_ulk)//FB
- {
- lks = 0;
- }
- else if(sec_schip_enabled())//SC
- {
- lks = 1;
- }
- else if(!sec_boot_enabled())//NSC
- {
- lks = 0;
- }
- else if(0 == tr && 2 == dn)//SWSEC
- {
- lks = 0;
- }
- else//SWSEC
- {
- lks = 1;
- }
-}
-
-//extern void osal_msleep(unsigned int msec);
-
-/**************************************************************************
- * SEC DRIVER IOCTL
- **************************************************************************/
-long sec_core_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- int err = 0;
- int ret = 0;
- unsigned int cipher_len = 0;
- unsigned int rid[4];
- unsigned char part_name[16];
- META_CONTEXT meta_ctx;
- int status = 0;
-
- /* ---------------------------------- */
- /* IOCTL */
- /* ---------------------------------- */
-
- if (_IOC_TYPE(cmd) != SEC_IOC_MAGIC)
- return -ENOTTY;
- if (_IOC_NR(cmd) > SEC_IOC_MAXNR)
- return -ENOTTY;
- if (_IOC_DIR(cmd) & _IOC_READ)
- err = !access_ok(VERIFY_WRITE, (void __user *)arg, _IOC_SIZE(cmd));
- if (_IOC_DIR(cmd) & _IOC_WRITE)
- err = !access_ok(VERIFY_READ, (void __user *)arg, _IOC_SIZE(cmd));
- if (err) return -EFAULT;
-
- switch (cmd) {
-
- /* ---------------------------------- */
- /* get random id */
- /* ---------------------------------- */
- case SEC_GET_RANDOM_ID:
- SMSG(bMsg,"[%s] CMD - SEC_GET_RANDOM_ID\n",MOD);
- sec_get_random_id(&rid[0]);
- ret = osal_copy_to_user((void __user *)arg, (void *)&rid[0], sizeof(unsigned int) * 4);
- break;
-
- /* ---------------------------------- */
- /* init boot info */
- /* ---------------------------------- */
- case SEC_BOOT_INIT:
- SMSG(bMsg,"[%s] CMD - SEC_BOOT_INIT\n",MOD);
- ret = masp_boot_init();
- sec_core_init();
- ret = osal_copy_to_user((void __user *)arg, (void *)&ret, sizeof(int));
- break;
-
-
- /* ---------------------------------- */
- /* check if secure boot is enbaled */
- /* ---------------------------------- */
- case SEC_BOOT_IS_ENABLED:
- SMSG(bMsg,"[%s] CMD - SEC_BOOT_IS_ENABLED\n",MOD);
- ret = sec_boot_enabled();
- ret = osal_copy_to_user((void __user *)arg, (void *)&ret, sizeof(int));
- break;
-
- /* ---------------------------------- */
- /* encrypt sec cfg */
- /* ---------------------------------- */
- case SEC_SECCFG_ENCRYPT:
- SMSG(bMsg,"[%s] CMD - SEC_SECCFG_ENCRYPT\n",MOD);
- if(copy_from_user((void *)&seccfg, (void __user *)arg, sizeof(SECCFG_U)))
- {
- return -EFAULT;
- }
-
- /* specify encrpytion length */
- SMSG(true,"[%s] SECCFG v%d\n",MOD,get_seccfg_ver());
- if (SEC_CFG_END_PATTERN == seccfg.v1.end_pattern)
- {
- if((SECCFG_V1 != get_seccfg_ver()) && (SECCFG_V1_2 != get_seccfg_ver()))
- {
- SMSG(true,"[%s] mismatch seccfg version v%d\n",MOD,get_seccfg_ver());
- SEC_ASSERT(0);
- }
-
- cipher_len = get_seccfg_cipher_len();
- sec_update_lks(seccfg.v1.sw_sec_lock_try, seccfg.v1.sw_sec_lock_done, seccfg.v1.attr == ATTR_DISABLE_IMG_CHECK);
- masp_hal_sp_hacc_enc((unsigned char*)&seccfg.v1.image_info,cipher_len,rom_info.m_SEC_CTRL.m_seccfg_ac_en,HACC_USER1,FALSE);
- }
- else if (SEC_CFG_END_PATTERN == seccfg.v3.end_pattern)
- {
- if(SECCFG_V3 != get_seccfg_ver())
- {
- SMSG(true,"[%s] mismatch seccfg version v%d\n",MOD,get_seccfg_ver());
- SEC_ASSERT(0);
- }
-
- cipher_len = get_seccfg_cipher_len();
- sec_update_lks(seccfg.v3.sw_sec_lock_try, seccfg.v3.sw_sec_lock_done, seccfg.v3.seccfg_attr == ATTR_DISABLE_IMG_CHECK);
- masp_hal_sp_hacc_enc((unsigned char*)&seccfg.v3.image_info,cipher_len,rom_info.m_SEC_CTRL.m_seccfg_ac_en,HACC_USER1,FALSE);
- }
- else
- {
- SMSG(true,"[%s] wrong seccfg version v%d\n",MOD,seccfg.v3.seccfg_ver)
- SEC_ASSERT(0);
- }
-
- ret = osal_copy_to_user((void __user *)arg, (void *)&seccfg, sizeof(SECCFG_U));
- break;
-
- /* ---------------------------------- */
- /* decrypt sec cfg */
- /* ---------------------------------- */
- case SEC_SECCFG_DECRYPT:
- SMSG(bMsg,"[%s] CMD - SEC_SECCFG_DECRYPT\n",MOD);
- if(copy_from_user((void *)&seccfg, (void __user *)arg, sizeof(SECCFG_U)))
- {
- return -EFAULT;
- }
-
- /* specify decrpytion length */
- if (SEC_CFG_END_PATTERN == seccfg.v1.end_pattern)
- {
- /* seccfg version should be corrected by caller */
- set_seccfg_ver(SECCFG_V1);
- cipher_len = get_seccfg_cipher_len();
- masp_hal_sp_hacc_dec((unsigned char*)&seccfg.v1.image_info,cipher_len,rom_info.m_SEC_CTRL.m_seccfg_ac_en,HACC_USER1,FALSE);
- sec_update_lks(seccfg.v1.sw_sec_lock_try, seccfg.v1.sw_sec_lock_done, seccfg.v1.attr == ATTR_DISABLE_IMG_CHECK);
- }
- else if (SEC_CFG_END_PATTERN == seccfg.v3.end_pattern)
- {
- /* seccfg version should be corrected by caller */
- set_seccfg_ver(SECCFG_V3);
- cipher_len = get_seccfg_cipher_len();
- masp_hal_sp_hacc_dec((unsigned char*)&seccfg.v3.image_info,cipher_len,rom_info.m_SEC_CTRL.m_seccfg_ac_en,HACC_USER1,FALSE);
- sec_update_lks(seccfg.v3.sw_sec_lock_try, seccfg.v3.sw_sec_lock_done, seccfg.v3.seccfg_attr == ATTR_DISABLE_IMG_CHECK);
- }
- else
- {
- SMSG(true,"[%s] wrong seccfg version v%d\n",MOD,seccfg.v3.seccfg_ver)
- SEC_ASSERT(0);
- }
-
- SMSG(bMsg,"[%s] SECCFG v%d\n",MOD,get_seccfg_ver());
-
- ret = osal_copy_to_user((void __user *)arg, (void *)&seccfg, sizeof(SECCFG_U));
- break;
-
- /* ---------------------------------- */
- /* NVRAM HW encryption */
- /* ---------------------------------- */
- case SEC_NVRAM_HW_ENCRYPT:
- SMSG(bMsg,"[%s] CMD - SEC_NVRAM_HW_ENCRYPT\n",MOD);
- if(osal_copy_from_user((void *)&meta_ctx, (void __user *)arg, sizeof(meta_ctx)))
- {
- return -EFAULT;
- }
-
- /* TODO : double check if META register is correct ? */
- masp_hal_sp_hacc_enc((unsigned char*)&(meta_ctx.data),NVRAM_CIPHER_LEN,TRUE,HACC_USER2,FALSE);
- meta_ctx.ret = SEC_OK;
-
- ret = osal_copy_to_user((void __user *)arg, (void *)&meta_ctx, sizeof(meta_ctx));
- break;
-
- /* ---------------------------------- */
- /* NVRAM HW decryption */
- /* ---------------------------------- */
- case SEC_NVRAM_HW_DECRYPT:
- SMSG(bMsg,"[%s] CMD - SEC_NVRAM_HW_DECRYPT\n",MOD);
- if(osal_copy_from_user((void *)&meta_ctx, (void __user *)arg, sizeof(meta_ctx)))
- {
- return -EFAULT;
- }
-
- masp_hal_sp_hacc_dec((unsigned char*)&(meta_ctx.data),NVRAM_CIPHER_LEN,TRUE,HACC_USER2,FALSE);
- meta_ctx.ret = SEC_OK;
- ret = osal_copy_to_user((void __user *)arg, (void *)&meta_ctx, sizeof(meta_ctx));
- break;
-
- /* ---------------------------------- */
- /* HEVC EOP */
- /* ---------------------------------- */
- case SEC_HEVC_EOP:
- SMSG(TRUE,"[%s] CMD - SEC_HEVC_EOP\n",MOD);
- if(osal_copy_from_user((void *)(&hevc_blk), (void __user *)arg, sizeof(HEVC_BLK)))
- {
- return -EFAULT;
- }
-
- if ((hevc_blk.len % CI_BLK_SIZE) == 0)
- {
- cipher_len = hevc_blk.len;
- }
- else if ((hevc_blk.len % CI_BLK_SIZE) > 0)
- {
- cipher_len = CI_BLK_ALIGN(hevc_blk.len)-CI_BLK_SIZE;
- if (cipher_len == 0 ){
- SMSG(TRUE,"[%s] less than one ci_blk, no need to do eop",MOD);
- break;
- }
- }
- masp_hal_sp_hacc_enc((unsigned char*)(&hevc_blk.buf),cipher_len,TRUE,HACC_USER4,FALSE);
-
- ret = osal_copy_to_user((void __user *)arg, (void *)(&hevc_blk), sizeof(HEVC_BLK));
- break;
-
- /* ---------------------------------- */
- /* HEVC DOP */
- /* ---------------------------------- */
- case SEC_HEVC_DOP:
- SMSG(TRUE,"[%s] CMD - SEC_HEVC_DOP\n",MOD);
- if(osal_copy_from_user((void *)(&hevc_blk), (void __user *)arg, sizeof(HEVC_BLK)))
- {
- return -EFAULT;
- }
-
- if ((hevc_blk.len % CI_BLK_SIZE) == 0)
- {
- cipher_len = hevc_blk.len;
- }
- else if ((hevc_blk.len % CI_BLK_SIZE) > 0)
- {
- cipher_len = CI_BLK_ALIGN(hevc_blk.len)-CI_BLK_SIZE;
- if (cipher_len == 0 ){
- SMSG(TRUE,"[%s] less than one ci_blk, no need to do dop",MOD);
- break;
- }
- }
-
- masp_hal_sp_hacc_dec((unsigned char*)(&hevc_blk.buf),cipher_len,TRUE,HACC_USER4,FALSE);
-
- ret = osal_copy_to_user((void __user *)arg, (void *)(&hevc_blk), sizeof(HEVC_BLK));
- break;
-
- /* ---------------------------------- */
- /* check if secure usbdl is enbaled */
- /* ---------------------------------- */
- case SEC_USBDL_IS_ENABLED:
- SMSG(bMsg,"[%s] CMD - SEC_USBDL_IS_ENABLED\n",MOD);
- ret = sec_usbdl_enabled();
- ret = osal_copy_to_user((void __user *)arg, (void *)&ret, sizeof(int));
- break;
-
- /* ---------------------------------- */
- /* configure HACC HW (include SW KEY) */
- /* ---------------------------------- */
- case SEC_HACC_CONFIG:
- SMSG(bMsg,"[%s] CMD - SEC_HACC_CONFIG\n",MOD);
- ret = sec_boot_hacc_init();
- ret = osal_copy_to_user((void __user *)arg, (void *)&ret, sizeof(int));
- break;
-
- /* ---------------------------------- */
- /* enable HACC HW clock */
- /* ---------------------------------- */
- case SEC_HACC_ENABLE_CLK:
- SMSG(bMsg,"[%s] CMD - SEC_HACC_ENABLE_CLK\n",MOD);
- ret = osal_copy_to_user((void __user *)arg, (void *)&ret, sizeof(int));
- break;
-
- /* ---------------------------------- */
- /* lock hacc function */
- /* ---------------------------------- */
- case SEC_HACC_LOCK:
-
- SMSG(bMsg,"[%s] CMD - SEC_HACC_LOCK\n",MOD);
- SMSG(bMsg,"[%s] lock\n",MOD);
-
- /* If the semaphore is successfully acquired, this function returns 0.*/
- ret = osal_hacc_lock();
-
- if(ret)
- {
- SMSG(true,"[%s] ERESTARTSYS\n",MOD);
- return -ERESTARTSYS;
- }
-
- return ret;
-
- /* ---------------------------------- */
- /* unlock hacc function */
- /* ---------------------------------- */
- case SEC_HACC_UNLOCK:
-
- SMSG(bMsg,"[%s] CMD - SEC_HACC_UNLOCK\n",MOD);
- SMSG(bMsg,"[%s] unlock\n",MOD);
-
- osal_hacc_unlock();
-
- break;
-
- /* ---------------------------------- */
- /* check if secure boot check enabled */
- /* ---------------------------------- */
- case SEC_BOOT_PART_CHECK_ENABLE:
- SMSG(bMsg,"[%s] CMD -SEC_BOOT_PART_CHECK_ENABLE\n",MOD);
- if(copy_from_user((void *)part_name, (void __user *)arg, sizeof(part_name)))
- {
- return -EFAULT;
- }
- ret = sec_boot_check_part_enabled (part_name);
- SMSG(bMsg,"[%s] result '0x%x'\n",MOD,ret);
- return ret;
-
- /* ---------------------------------- */
- /* notify mark incomplete */
- /* ---------------------------------- */
- case SEC_BOOT_NOTIFY_MARK_STATUS:
- SMSG(true,"[%s] mark status\n",MOD);
- /* may do some post process here ... */
- break;
-
- /* ---------------------------------- */
- /* notify check pass */
- /* ---------------------------------- */
- case SEC_BOOT_NOTIFY_PASS:
- SMSG(true,"[%s] sbchk pass\n",MOD);
- SMSG(true,"[%s] sbchk pass\n",MOD);
- SMSG(true,"[%s] sbchk pass\n",MOD);
- SMSG(true,"[%s] sbchk pass\n",MOD);
- SMSG(true,"[%s] sbchk pass\n",MOD);
- /* may do some post process here ... */
- break;
-
- /* ---------------------------------- */
- /* notify check fail */
- /* ---------------------------------- */
- case SEC_BOOT_NOTIFY_FAIL:
- if(osal_copy_from_user((void *)part_name, (void __user *)arg, sizeof(part_name)))
- {
- return -EFAULT;
- }
-
- SMSG(true,"[%s] sbchk fail '%s'\n",MOD,part_name);
- SMSG(true,"[%s] sbchk fail '%s'\n",MOD,part_name);
- SMSG(true,"[%s] sbchk fail '%s'\n",MOD,part_name);
- SMSG(true,"[%s] sbchk fail '%s'\n",MOD,part_name);
- SMSG(true,"[%s] sbchk fail '%s'\n",MOD,part_name);
- osal_msleep(3000);
- /* punishment ... */
- SEC_ASSERT(0);
- break;
-
- /* ---------------------------------- */
- /* notify recovery mode done */
- /* ---------------------------------- */
- case SEC_BOOT_NOTIFY_RMSDUP_DONE:
- SMSG(true,"[%s] recovery mode done\n",MOD);
- /* may do some post process here ... */
- break;
-
- /* ---------------------------------- */
- /* read rom info */
- /* ---------------------------------- */
- case SEC_READ_ROM_INFO:
- SMSG(bMsg,"[%s] read rom info\n",MOD);
- ret = osal_copy_to_user((void __user *)arg, (void *)&rom_info, sizeof(AND_ROMINFO_T));
- break;
-
-
- /* ---------------------------------- */
- /* notify check status */
- /* ---------------------------------- */
- case SEC_BOOT_NOTIFY_STATUS:
- ret = osal_copy_from_user((void *)&status, (void __user *)arg, sizeof(int));
- SMSG(true,"[%s] sbchk status : '0x%x' \n",MOD,status);
- break;
- }
-
- return 0;
-}
-
-/**************************************************************************
- * SEC DRIVER INIT
- **************************************************************************/
-void sec_core_init (void)
-{
- SMSG(true,"[%s] version '%s%s', enter.\n",MOD,BUILD_TIME,BUILD_BRANCH);
-
- /* ---------------------------------- */
- /* disable key init in kerne module */
- /* ---------------------------------- */
- sec_info.bKeyInitDis = TRUE;
-}
-
-/**************************************************************************
- * SEC DRIVER EXIT
- **************************************************************************/
-void sec_core_exit (void)
-{
- SMSG(true,"[%s] version '%s%s', exit.\n",MOD,BUILD_TIME,BUILD_BRANCH);
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_mtd.c b/drivers/misc/mediatek/masp/asf/core/sec_mtd.c
deleted file mode 100644
index a96c37f4e..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_mtd.c
+++ /dev/null
@@ -1,106 +0,0 @@
-#include <mach/sec_osal.h>
-#include "sec_osal_light.h"
-#include "sec_boot_lib.h"
-#include "sec_rom_info.h"
-#include "sec_secroimg.h"
-#include "sec_boot.h"
-#include "sec_error.h"
-#include "alg_sha1.h"
-#include "sec_mtd.h"
-#include "sec_typedef.h"
-#include "sec_log.h"
-
-/**************************************************************************
- * MACRO
- **************************************************************************/
-#define MOD "ASF"
-
-/**************************************************************************
- * EXTERNAL VARIABLES
- *************************************************************************/
-extern AND_ROMINFO_T rom_info;
-extern uchar sha1sum[];
-extern AND_SECROIMG_T secroimg;
-extern bool bSecroExist;
-extern bool bSecroIntergiy;
-extern uint32 secro_img_off;
-extern uint32 secro_img_mtd_num;
-
-/**************************************************************************
- * GET MTD PARTITION OFFSET
- **************************************************************************/
-uint32 sec_mtd_get_off(char* part_name)
-{
- uint32 i = 0;
-
- for(i = 0; i < MAX_MTD_PARTITIONS; i++)
- {
- if(0 == mcmp(mtd_part_map[i].name,part_name,strlen(mtd_part_map[i].name)))
- {
- return mtd_part_map[i].off;
- }
- }
-
- SEC_ASSERT(0);
- return 0;
-}
-
-/**************************************************************************
- * READ IMAGE
- **************************************************************************/
-uint32 sec_mtd_read_image(char* part_name, char* buf, uint32 off, uint32 size)
-{
- ASF_FILE fp;
- uint32 ret = SEC_OK;
- uint32 i = 0;
- char mtd_name[32];
- uint32 part_index = 0;
-
- /* find which partition should be updated in mtd */
- for(i=0; i<MAX_MTD_PARTITIONS; i++)
- {
- if(0 == mcmp(mtd_part_map[i].name,part_name,strlen(part_name)))
- {
- part_index = i;
- break;
- }
- }
-
- if(MAX_MTD_PARTITIONS == i)
- {
- ret = ERR_SBOOT_UPDATE_IMG_NOT_FOUND_IN_MTD;
- goto _end;
- }
-
-
- /* indicate which partition */
- sprintf(mtd_name, "/dev/mtd/mtd%d", part_index);
-
- fp = ASF_OPEN(mtd_name);
- if (ASF_IS_ERR(fp))
- {
- SMSG(true,"[%s] open fail\n",MOD);
- ret = ERR_SBOOT_UPDATE_IMG_OPEN_FAIL;
- goto _open_fail;
- }
-
- /* configure file system type */
- osal_set_kernel_fs();
-
- /* adjust read off */
- ASF_SEEK_SET(fp,off);
-
- /* read image to input buf */
- if(0 >= ASF_READ(fp,buf,size))
- {
- ret = ERR_SBOOT_UPDATE_IMG_READ_FAIL;
- goto _read_fail;
- }
-
-_read_fail:
- ASF_CLOSE(fp);
- osal_restore_fs();
-_open_fail:
-_end:
- return ret;
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_mtd_util.c b/drivers/misc/mediatek/masp/asf/core/sec_mtd_util.c
deleted file mode 100644
index 76e55a806..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_mtd_util.c
+++ /dev/null
@@ -1,151 +0,0 @@
-#include "sec_error.h"
-#include "sec_boot.h"
-#include "sec_mtd.h"
-#include "sec_typedef.h"
-#include "sec_osal_light.h"
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "MTD_UTIL"
-
-/**************************************************************************
- * PART NAME QUERY
- **************************************************************************/
-char* mtd2pl (char* part_name)
-{
- /* sync mtd partition name with PL's and DA's */
- /* ----------------- */
- /* seccfg */
- /* ----------------- */
- if(0 == mcmp(part_name,MTD_SECCFG,strlen(MTD_SECCFG)))
- {
- return (char*) PL_SECCFG;
- }
- /* ----------------- */
- /* uboot */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_UBOOT,strlen(MTD_UBOOT)))
- {
- return (char*) PL_UBOOT;
- }
- /* ----------------- */
- /* logo */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_LOGO,strlen(MTD_LOGO)))
- {
- return (char*) PL_LOGO;
- }
- /* ----------------- */
- /* boot image */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_BOOTIMG,strlen(MTD_BOOTIMG)))
- {
- return (char*) PL_BOOTIMG;
- }
- /* ----------------- */
- /* user data */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_USER,strlen(MTD_USER)))
- {
- return (char*) PL_USER;
- }
- /* ----------------- */
- /* system image */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_ANDSYSIMG,strlen(MTD_ANDSYSIMG)))
- {
- return (char*) PL_ANDSYSIMG;
- }
- /* ----------------- */
- /* recovery */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_RECOVERY,strlen(MTD_RECOVERY)))
- {
- return (char*) PL_RECOVERY;
- }
- /* ----------------- */
- /* sec ro */
- /* ----------------- */
- else if(0 == mcmp(part_name,MTD_SECRO,strlen(MTD_SECRO)))
- {
- return (char*) PL_SECRO;
- }
- /* ----------------- */
- /* not found */
- /* ----------------- */
- else
- {
- return part_name;
- }
-}
-
-char* pl2mtd (char* part_name)
-{
- /* sync mtd partition name with PL's and DA's */
- /* ----------------- */
- /* seccfg */
- /* ----------------- */
- if(0 == mcmp(part_name,PL_SECCFG,strlen(PL_SECCFG)))
- {
- return (char*) MTD_SECCFG;
- }
- /* ----------------- */
- /* uboot */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_UBOOT,strlen(PL_UBOOT)))
- {
- return (char*) MTD_UBOOT;
- }
- /* ----------------- */
- /* logo */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_LOGO,strlen(PL_LOGO)))
- {
- return (char*) MTD_LOGO;
- }
- /* ----------------- */
- /* boot image */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_BOOTIMG,strlen(PL_BOOTIMG)))
- {
- return (char*) MTD_BOOTIMG;
- }
- /* ----------------- */
- /* user data */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_USER,strlen(PL_USER)))
- {
- return (char*) MTD_USER;
- }
- /* ----------------- */
- /* system image */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_ANDSYSIMG,strlen(PL_ANDSYSIMG)))
- {
- return (char*) MTD_ANDSYSIMG;
- }
- /* ----------------- */
- /* recovery */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_RECOVERY,strlen(PL_RECOVERY)))
- {
- return (char*) MTD_RECOVERY;
- }
- /* ----------------- */
- /* sec ro */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_SECRO,strlen(PL_SECRO)))
- {
- return (char*) MTD_SECRO;
- }
- /* ----------------- */
- /* not found */
- /* ----------------- */
- else
- {
- return part_name;
- }
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_ops.c b/drivers/misc/mediatek/masp/asf/core/sec_ops.c
deleted file mode 100644
index bb36958ca..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_ops.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <mach/sec_osal.h>
-#include <mach/mt_sec_hal.h>
-#include "sec_osal_light.h"
-#include "sec_typedef.h"
-#include "alg_sha1.h"
-#include "sec_log.h"
-
-static int sec_get_rid(uint32 *rid)
-{
- uint32 obuf[5];
- uint32 ibuf[4];
-
- masp_hal_get_uuid(ibuf);
-
- sha1((uchar*)ibuf, 16, (uchar*)obuf);
-
- memcpy(rid, obuf, 16);
-
- #ifdef SEC_DEBUG
- {
- int i = 0;
-
- for (i = 0; i < 4; i++)
- {
- SMSG(TRUE,"IBUF[%d] = 0x%.8x\n", i, ibuf[i]);
- SMSG(TRUE,"OBUF[%d] = 0x%.8x\n", i, obuf[i]);
- }
- }
- #endif
-
- return 0;
-}
-
-
-/**************************************************************************
- * SEC RANDOM ID FUNCTION
- **************************************************************************/
-int sec_get_random_id(unsigned int *rid)
-{
- int ret;
-
- osal_rid_lock();
- ret = sec_get_rid(rid);
- osal_rid_unlock();
- return ret;
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_secro.c b/drivers/misc/mediatek/masp/asf/core/sec_secro.c
deleted file mode 100644
index 59b5836a3..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_secro.c
+++ /dev/null
@@ -1,442 +0,0 @@
-#include <mach/sec_osal.h>
-#include <mach/mt_sec_hal.h>
-#include <mach/mt_sec_export.h>
-#include "sec_typedef.h"
-#include "sec_rom_info.h"
-#include "sec_usbdl.h"
-#include "sec_secroimg.h"
-#include "sec_error.h"
-#include "sec_log.h"
-#include "alg_sha1.h"
-#include "sec_dev.h"
-
-/******************************************************************************
- * DEFINITIONS
- ******************************************************************************/
-#define MOD "ASF"
-
-
-/******************************************************************************
- * GLOBAL VARIABLES
- ******************************************************************************/
-AND_SECROIMG_T secroimg;
-AND_SECROIMG_V5a_T secroimg_v5;
-
-uint32 secro_v3_off = MAX_SECRO_V3_OFFSET;
-bool bSecroExist = FALSE;
-bool bSecroIntergiy = FALSE;
-bool bSecroV5Exist = FALSE;
-bool bSecroV5Intergiy = FALSE;
-
-
-
-/******************************************************************************
- * EXTERNAL VARIABLES
- ******************************************************************************/
-extern AND_ROMINFO_T rom_info;
-extern uchar sha1sum[];
-
-
-/******************************************************************************
- * VALIDATE SECRO
- ******************************************************************************/
-uint32 sec_secro_check (void)
-{
- uint32 ret = SEC_OK;
-
- /* ------------------------ */
- /* check header */
- /* ------------------------ */
- if(AC_ANDRO_MAGIC != secroimg.m_andro.magic_number)
- {
- ret = ERR_SECROIMG_HACC_AP_DECRYPT_FAIL;
- goto _end;
- }
-
- if(AC_MD_MAGIC != secroimg.m_md.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _end;
- }
-
- if(AC_MD2_MAGIC != secroimg.m_md2.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _end;
- }
-
- /* ------------------------ */
- /* check integrity */
- /* ------------------------ */
- if(FALSE == bSecroIntergiy)
- {
- sha1((uchar*)&secroimg, sizeof(AND_SECROIMG_T) - sizeof(secroimg.hash)
- - sizeof(AND_SECROIMG_PADDING_T), sha1sum);
-#if 0
- SMSG(TRUE,"[%s] hash value :\n",MOD);
- dump_buf(sha1sum,secroimg.m_header.hash_length);
- SMSG(TRUE,"[%s] correct :\n",MOD);
- dump_buf(secroimg.hash,secroimg.m_header.hash_length);
-#endif
- if(0 != mcmp(secroimg.hash, sha1sum, secroimg.m_header.hash_length))
- {
- SMSG(TRUE,"[%s] SECRO hash check fail\n",MOD);
- ret = ERR_SECROIMG_HASH_CHECK_FAIL;
- goto _end;
- }
-
- bSecroIntergiy = TRUE;
- SMSG(TRUE,"[%s] SECRO hash check pass\n",MOD);
- }
-
-_end:
-
- return ret;
-}
-
-/******************************************************************************
- * VALIDATE SECRO V5
- ******************************************************************************/
-uint32 sec_secro_v5_check (void)
-{
- uint32 ret = SEC_OK;
-
- /* ------------------------ */
- /* check header */
- /* ------------------------ */
- if(AC_MD_INFO_MAGIC != secroimg_v5.m_md_info_v5a.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _end;
- }
-
- if(AC_SV5_MAGIC_MD_V5a != secroimg_v5.m_md_sro_v5a.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _end;
- }
-
- /* ------------------------ */
- /* check integrity */
- /* ------------------------ */
- if(FALSE == bSecroV5Intergiy)
- {
- sha1((uchar*)&secroimg_v5, sizeof(AND_AC_HEADER_V5a_T) + sizeof(AND_AC_MD_INFO_V5a_T)
- + sizeof(AND_AC_MD_V5a_T), sha1sum);
-#if 0
- SMSG(TRUE,"[%s] hash value :\n",MOD);
- dump_buf(sha1sum,secroimg_v5.m_header_v5a.hash_len);
- SMSG(TRUE,"[%s] correct :\n",MOD);
- dump_buf(secroimg_v5.hash_v5a,secroimg_v5.m_header_v5a.hash_len);
-#endif
- if(0 != mcmp(secroimg_v5.hash_v5a, sha1sum, secroimg_v5.m_header_v5a.hash_len))
- {
- SMSG(TRUE,"[%s] SECRO V5 hash check fail\n",MOD);
- ret = ERR_SECROIMG_V5_HASH_CHECK_FAIL;
- goto _end;
- }
-
- bSecroV5Intergiy = TRUE;
- SMSG(TRUE,"[%s] SECRO V5 hash check pass\n",MOD);
- }
-
-_end:
-
- return ret;
-}
-
-
-/******************************************************************************
- * CHECK IF SECROIMG IS USED
- ******************************************************************************/
-unsigned char masp_secro_en (void)
-{
- /* return ProjectConfig's setting */
- if(TRUE == rom_info.m_SEC_CTRL.m_secro_ac_en)
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
-}
-
-/******************************************************************************
- * CHECK IF SECROIMG AC IS ENABLED
- ******************************************************************************/
-bool sec_secro_ac (void)
-{
- /* PLEASE NOTE THAT !!!!!!!!!!!!!!!!!!
- SECRO AC is only effected when SUSBDL is on */
- if(TRUE == sec_usbdl_enabled())
- {
- return TRUE;
- }
- /* If security chip, secroimage must be encrypted */
- else if(TRUE == masp_hal_sbc_enabled())
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
-}
-
-/******************************************************************************
- * RETURN SECROIMG BLK SIZE
- ******************************************************************************/
-uint32 masp_secro_blk_sz (void)
-{
- return masp_hal_sp_hacc_blk_sz();
-}
-
-
-/******************************************************************************
- * RETURN SECROIMG MD LENGTH
- ******************************************************************************/
-uint32 masp_secro_md_len (uchar *md_info)
-{
- uint32 index = 0;
- AND_AC_MD_INFO_V3a_T* cur_md_info = NULL;
- uint32 md_info_len = 0;
-
- SMSG(FALSE,"[%s]md_info:%s \n",MOD,md_info);
-
- if(TRUE == bSecroExist)
- {
- /* check if this secro supports v5 format(world phone) , in v3 format
- this area should be zero.*/
- if (FALSE == secroimg.m_header.world_phone_support)
- {
- /* read v3 format and return, it depends on first character */
- if ('1' == md_info[0])
- {
- return secroimg.m_header.md_length;
- }
- else if ('2' == md_info[0])
- {
- return secroimg.m_header.md2_length;
- }
- }
- /* if it supports v5 format (world phone) */
- else if (TRUE == secroimg.m_header.world_phone_support)
- {
- if (NULL != md_info)
- {
- md_info_len = strlen(md_info);
- }
-
- /* check if this image's information exist */
- for(index=0; index<MAX_V5_SUPPORT_MD_NUM; index++)
- {
- cur_md_info = &(secroimg.m_padding.md_v3a_info[index]);
-
- if(0 == strncmp(md_info,cur_md_info->md_name+strlen("SECURE_RO_"),md_info_len))
- {
- SMSG(TRUE,"[%s]md[%d]len:0x%x \n",MOD,index,cur_md_info->md_len);
- return cur_md_info->md_len;
- }
- }
-
- if (MAX_V5_SUPPORT_MD_NUM == index)
- {
- /* no match found, return 0 */
- SMSG(TRUE,"[%s]v5 no match \n",MOD);
- return 0;
- }
- }
- }
- else
- {
- SMSG(TRUE,"[%s]Secro v3 does not exist \n",MOD);
- return 0;
- }
-
- return 0;
-}
-
-/******************************************************************************
- * RETURN SECROIMG MD PLAINTEXT DATA
- ******************************************************************************/
-uint32 masp_secro_md_get_data (uchar *md_info, uchar* buf, uint32 offset, uint32 len)
-{
- uint32 ret = SEC_OK;
- uint32 cipher_len = sizeof(AND_AC_ANDRO_T) + sizeof(AND_AC_MD_T) + sizeof(AND_AC_MD2_T);
- AND_AC_MD_INFO_V3a_T* cur_md_info = NULL;
- uint32 md_info_len = 0;
- uint32 index = 0;
-
- osal_secro_lock();
-
- /* ----------------- */
- /* check */
- /* ----------------- */
-
- if (NULL == md_info)
- {
- ret = ERR_SECROIMG_EMPTY_MD_INFO_STR;
- goto _exit;
- }
- else
- {
- md_info_len = strlen(md_info);
- }
-
- if(FALSE == bSecroExist)
- {
- ret = ERR_SECROIMG_IS_EMPTY;
- goto _exit;
- }
-
- if(len == 0)
- {
- ret = ERR_SECROIMG_INVALID_BUF_LEN;
- goto _exit;
- }
-
- if (0 != (len % masp_hal_sp_hacc_blk_sz()))
- {
- ret = ERR_HACC_DATA_UNALIGNED;
- goto _exit;
- }
-
- /* check if it only supports secro v3 format */
- if (0 == secroimg.m_header.world_phone_support)
- {
-
- SMSG(TRUE,"[%s]sro v3 \n",MOD);
- /* ------------------------ */
- /* decrypt secroimg */
- /* ------------------------ */
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_dec((uchar*)&secroimg.m_andro, cipher_len, TRUE,HACC_USER1,TRUE);
- }
-
- /* ------------------------ */
- /* check header */
- /* ------------------------ */
- if(AC_ANDRO_MAGIC != secroimg.m_andro.magic_number)
- {
- ret = ERR_SECROIMG_HACC_AP_DECRYPT_FAIL;
- goto _exit;
- }
-
- if(AC_MD_MAGIC != secroimg.m_md.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _exit;
- }
-
- if(AC_MD2_MAGIC != secroimg.m_md2.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _exit;
- }
-
- /* ------------------------ */
- /* fill buffer */
- /* ------------------------ */
- /* only copy the data with user specified length */
-
- /* check if this image's information exist */
- if ('1' == md_info[0])
- {
- mcpy(buf,secroimg.m_md.reserve+offset,len);
- }
- else if ('2' == md_info[0])
- {
- mcpy(buf,secroimg.m_md2.reserve+offset,len);
- }
- else
- {
- SMSG(TRUE,"[%s] MD user not supported!\n",MOD);
- }
-
- /* ------------------------ */
- /* encrypt secro image */
- /* ------------------------ */
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_enc((uchar*)&secroimg.m_andro, cipher_len, TRUE,HACC_USER1,TRUE);
- }
- }
- else
- {
-
- SMSG(TRUE,"[%s]sro v5 \n",MOD);
- /* ----------------------------- */
- /* if it supports v5 format */
- /* ----------------------------- */
-
- /* check if this image's information exist */
- for(index=0; index<MAX_V5_SUPPORT_MD_NUM; index++)
- {
- cur_md_info = &(secroimg.m_padding.md_v3a_info[index]);
- if(0 == strncmp(md_info,cur_md_info->md_name+strlen("SECURE_RO_"),md_info_len))
- {
- break;
- }
- }
-
- /* md info dees not exist */
- if (MAX_V5_SUPPORT_MD_NUM == index)
- {
- ret = ERR_SECROIMG_MD_INFO_NOT_EXIST;
- goto _exit;
- }
-
- /* ------------------------ */
- /* read secro v5 from flash */
- /* ------------------------ */
- bSecroV5Exist = FALSE;
- bSecroV5Intergiy = FALSE;
- if(SEC_OK != (ret = sec_dev_read_secroimg_v5(index)))
- {
- goto _exit;
- }
- else
- {
- /* ------------------------ */
- /* decrypt secroimg */
- /* ------------------------ */
- cipher_len = sizeof(AND_AC_MD_INFO_V5a_T) + sizeof(AND_AC_MD_V5a_T);
- if(TRUE == sec_secro_ac())
- {
- masp_hal_sp_hacc_dec((uchar*)&secroimg_v5.m_md_info_v5a, cipher_len, TRUE,HACC_USER1,TRUE);
- }
-
- /* ------------------------ */
- /* check header */
- /* ------------------------ */
- if(AC_MD_INFO_MAGIC != secroimg_v5.m_md_info_v5a.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _exit;
- }
-
- if(AC_SV5_MAGIC_MD_V5a != secroimg_v5.m_md_sro_v5a.magic_number)
- {
- ret = ERR_SECROIMG_HACC_MD_DECRYPT_FAIL;
- goto _exit;
- }
-
- /* ------------------------ */
- /* fill buffer */
- /* ------------------------ */
- /* only copy the data with user specified length */
- mcpy(buf,secroimg_v5.m_md_sro_v5a.reserve+offset,len);
-
- /* no need to encrypt since next time, we'll read it again from flash*/
- }
- }
-
-
-_exit:
-
- osal_secro_unlock();
-
- return ret;
-}
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_core.c b/drivers/misc/mediatek/masp/asf/core/sec_signfmt_core.c
deleted file mode 100644
index a23279f50..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_core.c
+++ /dev/null
@@ -1,673 +0,0 @@
-#include "sec_boot_lib.h"
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "SFMT_CORE"
-
-/**************************************************************************
- * FUNCTION To Get File Hash
- **************************************************************************/
-static int sec_signfmt_get_file_hash(char* file_name, char* hash_buf, unsigned int hash_len,
- unsigned int offset, unsigned int size)
-{
- uint32 ret = SEC_OK;
- ASF_FILE fp = ASF_FILE_NULL;
- bool bFileOpened = false;
- char *file_buf = NULL;
- uint32 file_size = 0;
- bool bBufAllocate = false;
- uint32 read_size = 0;
-
- ASF_GET_DS
-
- /* ----------------------------------- */
- /* parameter check */
- /* ----------------------------------- */
- if(NULL == hash_buf)
- {
- ret = ERR_FS_READ_BUF_IS_NULL;
- goto _end;
- }
-
- /* ----------------------------------- */
- /* open file */
- /* ----------------------------------- */
- fp = ASF_OPEN(file_name);
- if (ASF_FILE_ERROR(fp))
- {
- ret = ERR_FS_OPEN_SEC_FILE_FAIL;
- goto _end;
- }
-
- SMSG(true,"\n-----------------------\n");
- SMSG(true,"[%s] read '%s'\n",MOD,file_name);
- SMSG(true,"-----------------------\n");
- bFileOpened = true;
-
- /* ----------------------------------- */
- /* get file size */
- /* ----------------------------------- */
- ASF_SEEK_END(fp, 0);
- file_size = ASF_FILE_POS(fp);
- SMSG(true,"[%s] file size '%d'\n",MOD,file_size);
-
- /* ----------------------------------- */
- /* adjust read size */
- /* ----------------------------------- */
- if(0 != size)
- {
- if( file_size > size)
- {
- file_size = size;
- SMSG(true,"[%s] adjust read size '0x%x'\n",MOD,file_size);
- }
- }
-
- /* ----------------------------------- */
- /* allocate file buffer */
- /* ----------------------------------- */
- file_buf = ASF_MALLOC(file_size);
- if(NULL == file_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _end;
- }
-
- bBufAllocate = true;
-
- /* ----------------------------------- */
- /* adjust file offset */
- /* ----------------------------------- */
- ASF_SEEK_SET(fp, offset);
-
- /* ----------------------------------- */
- /* read file */
- /* ----------------------------------- */
- if (file_size != (read_size = ASF_READ(fp, file_buf, file_size)))
- {
- SMSG(true,"[%s] '%s' read size '%d' != '%d'\n",MOD,file_name,read_size,file_size);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _end;
- }
-
- /* ----------------------------------- */
- /* hash file */
- /* ----------------------------------- */
- if(SEC_OK != (ret = sec_hash((uchar*)file_buf, file_size,
- (uchar*)hash_buf, hash_len )))
- {
- SMSG(true,"[%s] generate hash fail\n\n",MOD);
- ret = ERR_SIGN_FORMAT_GENERATE_HASH_FAIL;
- goto _end;
- }
-
-_end:
-
- if(true == bFileOpened)
- {
- ASF_CLOSE(fp);
- }
-
- if(true == bBufAllocate)
- {
- ASF_FREE(file_buf);
- }
-
- ASF_PUT_DS
-
- return ret;
-}
-
-
-/**************************************************************************
- * FUNCTION To Verify File
- **************************************************************************/
-int sec_signfmt_verify_file(char *file_path, SEC_IMG_HEADER *img_hdr, unsigned int *data_offset, unsigned int *data_sec_len)
-{
- unsigned int ret = SEC_OK;
- ASF_FILE fp = ASF_FILE_NULL;
- int read_sz = 0;
-
- ASF_GET_DS
-
- /* check if file is null */
- if (NULL == file_path)
- {
- SMSG(true,"[%s] doesn't initialize fs sec file list '%s'\n",MOD,file_path);
- ret = ERR_FS_SEC_LIST_NOT_SPECIFY;
- goto _end;
- }
-
- /* check if file is existed */
- fp = ASF_OPEN(file_path);
- if (ASF_FILE_ERROR(fp))
- {
- SMSG(true,"[%s] open '%s' fail\n",MOD,file_path);
- ret = ERR_FS_OPEN_SEC_FILE_FAIL;
- goto _end;
- }
-
- /* get header */
- if (SEC_IMG_HEADER_SIZE != (read_sz = ASF_READ(fp, (char*)img_hdr, SEC_IMG_HEADER_SIZE)))
- {
- SMSG(true,"[%s] '%s' read size '%d' != '%d'\n",MOD,file_path,read_sz,SEC_IMG_HEADER_SIZE);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_hdr_fail;
- }
-
- /* check sign format */
- if ( SEC_IMG_MAGIC != img_hdr->magic_number )
- {
- SMSG(true,"[%s] '%s' is not signed\n",MOD,file_path);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _not_signed;
- }
- if (is_signfmt_v4(img_hdr))
- {
- ret = sec_signfmt_verify_file_v4(fp, img_hdr);
- }
- else if (is_signfmt_v3(img_hdr))
- {
- ret = sec_signfmt_verify_file_v3(fp, img_hdr);
- }
- else
- {
- ret = sec_signfmt_verify_file_v2(fp, img_hdr);
- }
-
- *data_offset = SEC_IMG_HEADER_SIZE;
- *data_sec_len = SEC_IMG_HEADER_SIZE;
-
- if (is_signfmt_v4(img_hdr))
- {
- *data_sec_len += sec_signfmt_get_extension_length_v4(NULL, fp, img_hdr);
- }
- else if (is_signfmt_v3(img_hdr))
- {
- *data_sec_len += sec_signfmt_get_extension_length_v3(NULL, fp, img_hdr);
- }
- else
- {
- *data_sec_len += sec_signfmt_get_extension_length_v2(fp);
- }
-
-_not_signed:
-_read_hdr_fail:
- ASF_CLOSE(fp);
-_end:
- ASF_PUT_DS
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTION To Get Hash Length
- **************************************************************************/
-int sec_signfmt_get_hash_length(SEC_IMG_U *img_if, ASF_FILE fp, char *ext_buf)
-{
- bool v3_fmt = false;
- bool v4_fmt = false;
- SEC_IMG_HEADER img_hdr;
- uint32 read_sz = 0;
-
- memset(&img_hdr, 0x00, SEC_IMG_HEADER_SIZE);
-
- /* if file_path is existed, then it will get the hash length from file ; otherwise, it will get the hash length from seccfg */
- if( !ASF_FILE_ERROR(fp) )
- {
- ASF_SEEK_SET(fp, 0);
- /* get header */
- if (SEC_IMG_HEADER_SIZE != (read_sz = ASF_READ(fp, (char*)&img_hdr, SEC_IMG_HEADER_SIZE)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,SEC_IMG_HEADER_SIZE);
- return -1;
- }
-
- v3_fmt = is_signfmt_v3(&img_hdr);
- v4_fmt = is_signfmt_v4(&img_hdr);
- }
- else if(SECCFG_V3 == get_seccfg_ver())
- {
- v3_fmt = is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v3.header.va);
- v4_fmt = is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v3.header.va);
- }
- else
- {
- v3_fmt = is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v1.header.va);
- v4_fmt = is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v1.header.va);
- }
-
- if ( v4_fmt )
- {
- return sec_signfmt_get_hash_length_v4(&img_if->v3, fp, &img_hdr, ext_buf);
- }
- else if ( v3_fmt )
- {
- return sec_signfmt_get_hash_length_v3(&img_if->v3, fp, &img_hdr, ext_buf);
- }
- else
- {
- return sec_signfmt_get_hash_length_v2();
- }
-}
-
-/**************************************************************************
- * FUNCTION To Get Signature Length
- **************************************************************************/
-int sec_signfmt_get_signature_length(SEC_IMG_U *img_if, ASF_FILE fp, char *ext_buf)
-{
- bool v3_fmt = false;
- bool v4_fmt = false;
- SEC_IMG_HEADER img_hdr;
- uint32 read_sz = 0;
-
- memset(&img_hdr, 0x00, SEC_IMG_HEADER_SIZE);
-
- /* if file_path is existed, then it will get the hash length from file ; otherwise, it will get the hash length from seccfg */
- if( !ASF_FILE_ERROR(fp) )
- {
- ASF_SEEK_SET(fp, 0);
- /* get header */
- if (SEC_IMG_HEADER_SIZE != (read_sz = ASF_READ(fp, (char*)&img_hdr, SEC_IMG_HEADER_SIZE)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,SEC_IMG_HEADER_SIZE);
- return -1;
- }
-
- v3_fmt = is_signfmt_v3(&img_hdr);
- v4_fmt = is_signfmt_v4(&img_hdr);
- }
- else if(SECCFG_V3 == get_seccfg_ver())
- {
- v3_fmt = is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v3.header.va);
- v4_fmt = is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v3.header.va);
- }
- else
- {
- v3_fmt = is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v1.header.va);
- v4_fmt = is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v1.header.va);
- }
-
- if ( v4_fmt )
- {
- return sec_signfmt_get_signature_length_v4(&img_if->v3, fp, &img_hdr, ext_buf);
- }
- else if ( v3_fmt )
- {
- return sec_signfmt_get_signature_length_v3(&img_if->v3, fp, &img_hdr, ext_buf);
- }
- else
- {
- return sec_signfmt_get_signature_length_v2();
- }
-}
-
-
-/**************************************************************************
- * FUNCTION To Get Extension Length
- **************************************************************************/
-int sec_signfmt_get_extension_length(SEC_IMG_U *img_if, ASF_FILE fp)
-{
- bool v3_fmt = false;
- bool v4_fmt = false;
- SEC_IMG_HEADER img_hdr;
- uint32 read_sz = 0;
-
- memset(&img_hdr, 0x00, SEC_IMG_HEADER_SIZE);
-
- /* if file_path is existed, then it will get the hash length from file ; otherwise, it will get the hash length from seccfg */
- if( !ASF_FILE_ERROR(fp) )
- {
- ASF_SEEK_SET(fp, 0);
- /* get header */
- if (SEC_IMG_HEADER_SIZE != (read_sz = ASF_READ(fp, (char*)&img_hdr, SEC_IMG_HEADER_SIZE)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,SEC_IMG_HEADER_SIZE);
- return -1;
- }
-
- v3_fmt = is_signfmt_v3(&img_hdr);
- v4_fmt = is_signfmt_v3(&img_hdr);
- }
- else if(SECCFG_V3 == get_seccfg_ver())
- {
- v3_fmt = is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v3.header.va);
- v4_fmt = is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v3.header.va);
- }
- else
- {
- v3_fmt = is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v1.header.va);
- v4_fmt = is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v1.header.va);
- }
-
- if ( v4_fmt )
- {
- return sec_signfmt_get_extension_length_v4(&img_if->v3, fp, &img_hdr);
- }
- else if ( v3_fmt )
- {
- return sec_signfmt_get_extension_length_v3(&img_if->v3, fp, &img_hdr);
- }
- else
- {
- return sec_signfmt_get_extension_length_v2(fp);
- }
-}
-
-
-/**************************************************************************
- * FUNCTION To Get File Hash
- **************************************************************************/
-static int sec_signfmt_calculate_filelist_hash_core(ASF_FILE fp, char *double_hash_buf, unsigned int double_hash_len, unsigned int single_hash_len)
-{
- unsigned int ret = SEC_OK;
- uint32 i = 0;
- char *file_buf = NULL, *sec_file = NULL;
- uint32 read_sz = 0;
- char *tmp_signal_hash_buf = NULL;
- uint32 img_content_offset = 0;
- uint32 img_content_length = 0;
- uint32 file_size = 0;
-
-
- /* reset buffer */
- memset(double_hash_buf, 0x00, double_hash_len);
-
- if(double_hash_len < 2*single_hash_len)
- {
- SMSG(true,"[%s] hash buffer size is invalid '%d'\n",MOD,double_hash_len);
- ret = ERR_SIGN_FORMAT_HASH_SIZE_WRONG;
- goto _end;
- }
-
- ASF_SEEK_END(fp, 0);
- file_size = ASF_FILE_POS(fp);
-
- img_content_offset = SEC_IMG_HEADER_SIZE;
- img_content_length = file_size-SEC_IMG_HEADER_SIZE-sec_signfmt_get_extension_length(NULL, fp);
-
- /* allocate file buffer */
- file_buf = ASF_MALLOC(img_content_length);
- if(NULL == file_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_file_buf_fail;
- }
-
- /* adjust file offset */
- ASF_SEEK_SET(fp, img_content_offset);
-
- /* read sec file list */
- if (img_content_length != (read_sz = ASF_READ(fp, file_buf, img_content_length)))
- {
- SMSG(true,"[%s] read sz '%d' != '%d'\n",MOD,read_sz,img_content_length);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_file_list_fail;
- }
-
- /* allocate temp file hash buffer */
- tmp_signal_hash_buf = ASF_MALLOC(single_hash_len);
- if(NULL == tmp_signal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_hash_buf_fail;
- }
-
- /* ----------------------------------- */
- /* traverse file list */
- /* ----------------------------------- */
- for(i = 0; i<img_content_length; i++)
- {
- /* find file name */
- if('[' == file_buf[i])
- {
- sec_file = file_buf + i + 1;
- sec_file = ASF_STRTOK(sec_file,"]");
- }
- else
- {
- continue;
- }
-
- /* ----------------------------------- */
- /* read file and do hash */
- /* ----------------------------------- */
- if(SEC_OK != (ret = sec_signfmt_get_file_hash(sec_file,
- tmp_signal_hash_buf, single_hash_len, 0, 0)))
- {
- /* skip unfound file */
- if(ERR_FS_OPEN_SEC_FILE_FAIL == ret)
- {
- SMSG(true,"[%s] file '%s' not found\n",MOD,sec_file);
- ret = SEC_OK;
- continue;
- }
- else
- {
- goto _end;
- }
- }
-
- /* ----------------------------------- */
- /* dump file hash */
- /* ----------------------------------- */
- SMSG(sec_info.bMsg,"[%s] dump file hash (single):\n",MOD);
- dump_buf((uchar*)tmp_signal_hash_buf, single_hash_len);
-
- /* ----------------------------------- */
- /* integrate file hash */
- /* ----------------------------------- */
- /* append this file hash */
- mcpy(double_hash_buf+single_hash_len, tmp_signal_hash_buf, single_hash_len);
-
- memset(tmp_signal_hash_buf, 0x00, single_hash_len);
- if(SEC_OK != (ret = sec_hash((uchar*)double_hash_buf, single_hash_len*2,
- (uchar*)tmp_signal_hash_buf, single_hash_len )))
- {
- SMSG(true,"[%s] generate hash fail\n\n",MOD);
- ret = ERR_SIGN_FORMAT_GENERATE_HASH_FAIL;
- goto _gen_hash_fail;
- }
-
- /* write back to output buf */
- mcpy(double_hash_buf, tmp_signal_hash_buf, single_hash_len);
-
- SMSG(sec_info.bMsg,"[%s] dump file hash (compose):\n",MOD);
- dump_buf((uchar*)double_hash_buf, single_hash_len);
- }
-
- SMSG(true,"-----------------------\n");
- SMSG(true,"[%s] read files done\n",MOD);
- SMSG(true,"-----------------------\n\n");
-
- SMSG(sec_info.bMsg,"[%s] file list data(final):\n",MOD);
- dump_buf((uchar*)double_hash_buf, single_hash_len*2);
-
-_gen_hash_fail:
- ASF_FREE(tmp_signal_hash_buf);
-_malloc_hash_buf_fail:
-_read_file_list_fail:
- ASF_FREE(file_buf);
-_malloc_file_buf_fail:
-_end:
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTION To Get File Hash
- **************************************************************************/
-int sec_signfmt_calculate_filelist_hash(char* part_name, SEC_IMG_U *img_if, char *file_path,
- char *hash_buf, unsigned int hash_len, char *ext_buf)
-{
- unsigned int ret = SEC_OK;
- ASF_FILE fp = ASF_FILE_NULL;
- SEC_IMG_HEADER img_hdr;
- uint32 single_hash_len = 0;
- uchar *verify_buf = NULL;
- uint32 file_content_len = 0;
- uint32 ext_hdr_len = 0;
- uint32 verify_len = 0;
- uint32 data_offset = 0;
- uint32 data_sec_len = 0;
-
- memset(&img_hdr, 0x00, SEC_IMG_HEADER_SIZE);
-
- /* verify file */
- if(SEC_OK != (ret = sec_signfmt_verify_file(file_path, &img_hdr, &data_offset, &data_sec_len)))
- {
- goto _end;
- }
-
- /* check if file is null */
- if (NULL == file_path)
- {
- SMSG(true,"[%s] doesn't initialize fs sec file list '%s'\n",MOD,file_path);
- ret = ERR_FS_SEC_LIST_NOT_SPECIFY;
- goto _end;
- }
-
- /* check if file is existed */
- fp = ASF_OPEN(file_path);
- if (ASF_FILE_ERROR(fp))
- {
- SMSG(true,"[%s] open '%s' fail\n",MOD,file_path);
- ret = ERR_FS_OPEN_SEC_FILE_FAIL;
- goto _end;
- }
-
- if(SECCFG_V3 == get_seccfg_ver())
- {
- /* to be update later when single hash length is known */
- file_content_len = 0;
- }
- else
- {
- file_content_len = shdr_sign_len(&img_if->v1.header);
- }
-
- /* check sign format type, and get file list hash */
- if (is_signfmt_v4(&img_hdr) && (SECCFG_V3 == get_seccfg_ver()))
- {
- /* should get the hash length from file */
- single_hash_len = sec_signfmt_get_hash_length_v4(&img_if->v3, fp, &img_hdr, ext_buf);
-
- /* need to handle v3 case */
- file_content_len = single_hash_len*2;
- ext_hdr_len = img_if->v3.ext_len - img_if->v3.header.v4.signature_length;
- verify_len = SEC_IMG_HEADER_SIZE + file_content_len + ext_hdr_len;
- }
- else if (is_signfmt_v3(&img_hdr) && (SECCFG_V3 == get_seccfg_ver()))
- {
- /* should get the hash length from file */
- single_hash_len = sec_signfmt_get_hash_length_v3(&img_if->v3, fp, &img_hdr, ext_buf);
-
- /* need to handle v3 case */
- file_content_len = single_hash_len*2;
- ext_hdr_len = img_if->v3.ext_len - img_if->v3.header.v3.signature_length;
- verify_len = SEC_IMG_HEADER_SIZE + file_content_len + ext_hdr_len;
- }
- else
- {
- single_hash_len = sec_signfmt_get_hash_length_v2();
-
- /* extend the buffer length if it is too small */
- if(file_content_len<single_hash_len*2)
- {
- file_content_len = single_hash_len*2;
- }
- verify_len = SEC_IMG_HEADER_SIZE + file_content_len;
- }
-
- /* allocate temp file hash buffer */
- verify_buf = ASF_MALLOC(verify_len);
- if(NULL == verify_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_fail;
- }
- memset(verify_buf, 0x00, verify_len);
-
-
- /* get verify data which is the file list hash, and it's length should be double of hash length */
- if(SEC_OK != (ret = sec_signfmt_calculate_filelist_hash_core(fp, (char*)verify_buf+SEC_IMG_HEADER_SIZE, file_content_len, single_hash_len)))
- {
- goto _end;
- }
-
- /* compose final verify buffer */
- if( is_signfmt_v4(&img_hdr) && SECCFG_V3 == get_seccfg_ver())
- {
- mcpy(verify_buf, (char*)&img_if->v3.header.va, SEC_IMG_HEADER_SIZE);
- mcpy(verify_buf+SEC_IMG_HEADER_SIZE+file_content_len, (char*)ext_buf+img_if->v3.ext_offset+img_if->v3.header.v4.signature_length, ext_hdr_len);
- }
- else if( is_signfmt_v3(&img_hdr) && SECCFG_V3 == get_seccfg_ver())
- {
- mcpy(verify_buf, (char*)&img_if->v3.header.va, SEC_IMG_HEADER_SIZE);
- mcpy(verify_buf+SEC_IMG_HEADER_SIZE+file_content_len, (char*)ext_buf+img_if->v3.ext_offset+img_if->v3.header.v3.signature_length, ext_hdr_len);
- }
- else
- {
- mcpy(verify_buf, (char*)&img_if->v1.header.va, SEC_IMG_HEADER_SIZE);
- }
-
-
- /* generate final hash */
- if(SEC_OK != (ret = sec_hash((uchar*)verify_buf, verify_len, (uchar*)hash_buf, hash_len )))
- {
- SMSG(true,"[%s] generate hash fail\n\n",MOD);
- ret = ERR_SIGN_FORMAT_GENERATE_HASH_FAIL;
- goto _gen_hash_fail;
- }
-
- SMSG(sec_info.bMsg,"[%s] file list hash(final):\n",MOD);
-
- dump_buf((uchar*)hash_buf, hash_len);
-
- SMSG(sec_info.bMsg,"[%s] generate file list hash pass\n\n",MOD);
-
-_gen_hash_fail:
- ASF_FREE(verify_buf);
-_malloc_fail:
- ASF_CLOSE(fp);
-_end:
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTION To Get Image Hash
- **************************************************************************/
-int sec_signfmt_calculate_image_hash(char* part_name, SEC_IMG_U *img_if, char *hash_buf, unsigned int hash_len, char *ext_buf)
-{
- unsigned int ret = SEC_OK;
-
- /* check sign format type */
- if (SECCFG_V3 == get_seccfg_ver() && is_signfmt_v4((SEC_IMG_HEADER*)&img_if->v3.header.va))
- {
- if(SEC_OK != (ret = sec_signfmt_calculate_image_hash_v4(part_name, &img_if->v3, hash_buf, hash_len, ext_buf)))
- {
- goto _end;
- }
- }
- else if (SECCFG_V3 == get_seccfg_ver() && is_signfmt_v3((SEC_IMG_HEADER*)&img_if->v3.header.va))
- {
- if(SEC_OK != (ret = sec_signfmt_calculate_image_hash_v3(part_name, &img_if->v3, hash_buf, hash_len, ext_buf)))
- {
- goto _end;
- }
- }
- else
- {
- if(SEC_OK != (ret = sec_signfmt_calculate_image_hash_v2(part_name, (SEC_IMG_HEADER*)&img_if->v1.header.va, (uint32)img_if->v1.image_type, hash_buf, hash_len)))
- {
- goto _end;
- }
- }
-
-_end:
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_util.c b/drivers/misc/mediatek/masp/asf/core/sec_signfmt_util.c
deleted file mode 100644
index 85a0cfbd6..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_util.c
+++ /dev/null
@@ -1,84 +0,0 @@
-//#include "sec_osal_light.h"
-#include "sec_signfmt_util.h"
-
-/**************************************************************************
- * GLOBAL VARIABLES
- **************************************************************************/
-unsigned int sec_crypto_hash_size[] =
-{
- CRYPTO_SIZE_UNKNOWN,
- SEC_SIZE_HASH_MD5,
- SEC_SIZE_HASH_SHA1,
- SEC_SIZE_HASH_SHA256,
- SEC_SIZE_HASH_SHA512
-};
-
-unsigned int sec_crypto_sig_size[] =
-{
- CRYPTO_SIZE_UNKNOWN,
- SEC_SIZE_SIG_RSA512,
- SEC_SIZE_SIG_RSA1024,
- SEC_SIZE_SIG_RSA2048
-};
-
-/**************************************************************************
- * UTILITY FUNCTIONS
- **************************************************************************/
-unsigned int get_hash_size(SEC_CRYPTO_HASH_TYPE hash)
-{
- return sec_crypto_hash_size[hash];
-}
-
-unsigned int get_signature_size(SEC_CRYPTO_SIGNATURE_TYPE sig)
-{
- return sec_crypto_sig_size[sig];
-}
-
-unsigned char is_signfmt_v1(SEC_IMG_HEADER *hdr)
-{
- if( 0 == hdr->signature_length )
- {
- return true;
- }
-
- return false;
-}
-
-unsigned char is_signfmt_v2(SEC_IMG_HEADER *hdr)
-{
- if( 0 == hdr->signature_length )
- {
- return false;
- }
- else if( SEC_EXTENSION_MAGIC == hdr->sign_offset )
- {
- return false;
- }
-
- return true;
-}
-
-unsigned char is_signfmt_v3(SEC_IMG_HEADER *hdr)
-{
-
- if( SEC_EXTENSION_MAGIC == hdr->sign_offset )
- {
- return true;
- }
-
- return false;
-}
-
-
-unsigned char is_signfmt_v4(SEC_IMG_HEADER *hdr)
-{
- SEC_IMG_HEADER_V4 *v4_hdr = (SEC_IMG_HEADER_V4 *)hdr;
-
- if( SEC_EXTENSION_MAGIC_V4 == v4_hdr->ext_magic)
- {
- return true;
- }
-
- return false;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v2.c b/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v2.c
deleted file mode 100644
index 5cd59dfc9..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v2.c
+++ /dev/null
@@ -1,282 +0,0 @@
-#include "sec_boot_lib.h"
-#include "sec_sign_extension.h"
-#include "sec_signfmt_v2.h"
-#include "sec_signfmt_util.h"
-#include "sec_log.h"
-#include "sec_error.h"
-#include "sec_mtd_util.h"
-#include "sec_wrapper.h"
-#include <mach/sec_osal.h>
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "SFMT_V2"
-
-/**************************************************************************
- * FUNCTION To Get Hash Length
- **************************************************************************/
-unsigned int sec_signfmt_get_hash_length_v2()
-{
- return get_hash_size(SEC_CRYPTO_HASH_SHA1);
-}
-
-/**************************************************************************
- * FUNCTION To Get Signature Length
- **************************************************************************/
-unsigned int sec_signfmt_get_signature_length_v2()
-{
- return get_signature_size(SEC_CRYPTO_SIG_RSA1024);
-}
-
-/**************************************************************************
- * FUNCTION To Get Extension Length
- **************************************************************************/
-unsigned int sec_signfmt_get_extension_length_v2(ASF_FILE fp)
-{
- /* the extension include signature + hash + extension header */
- if(ASF_FILE_NULL == fp)
- {
- return 0;
- }
- else
- {
- return get_hash_size(SEC_CRYPTO_HASH_SHA1)+get_signature_size(SEC_CRYPTO_SIG_RSA1024);
- }
-}
-
-/**************************************************************************
- * FUNCTION To Get Image Hash
- **************************************************************************/
-int sec_signfmt_calculate_image_hash_v2(char* part_name, SEC_IMG_HEADER *img_hdr,
- unsigned int image_type, char *hash_buf, unsigned int hash_len)
-{
- uint32 ret = SEC_OK;
- uint32 verify_len = 0;
- uchar *verify_buf = NULL;
- uint32 img_sign_off = 0;
- uint32 img_sign_len = 0;
-
- /* reset buffer */
- memset(hash_buf, 0x00, hash_len);
-
- if(hash_len != sec_signfmt_get_hash_length_v2())
- {
- SMSG(true,"[%s] hash buffer size is invalid '%d'\n",MOD,hash_len);
- ret = ERR_SIGN_FORMAT_HASH_SIZE_WRONG;
- goto _end;
- }
-
- /* init check */
- if(SEC_IMG_MAGIC != img_hdr->magic_number)
- {
- SMSG(true,"[%s] magic number is invalid '0x%x'\n",MOD,img_hdr->magic_number);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _end;
- }
-
- /* check length */
- verify_len = SEC_IMG_HEADER_SIZE;
- img_sign_off = 0;
- if (is_signfmt_v2(img_hdr))
- {
- img_sign_len = img_hdr->sign_length;
- img_sign_off += img_hdr->sign_offset;
- }
- else
- {
- /* workaround for v1 */
- img_sign_len = ((SEC_IMG_HEADER_U*)img_hdr)->v1.sign_length;
- img_sign_off += ((SEC_IMG_HEADER_U*)img_hdr)->v1.sign_offset;
- }
- verify_len += img_sign_len;
-
- /* prepare verify buffer */
- verify_buf = ASF_MALLOC(verify_len);
- if(NULL == verify_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_verify_fail;
- }
- memset(verify_buf, 0x00, verify_len);
-
- /* fill in verify buffer */
- mcpy(verify_buf, img_hdr, SEC_IMG_HEADER_SIZE);
-
- if(SEC_OK != (ret = sec_dev_read_image ( pl2part(part_name),
- (char*)verify_buf+SEC_IMG_HEADER_SIZE,
- img_sign_off,
- img_sign_len,
- image_type)))
- {
- SMSG(true,"[%s] read mtd '%s' fail at image offset 0x%x with length 0x%x\n",MOD,(char*)pl2part(part_name),img_sign_off,img_sign_len);
- goto _read_mtd_fail;
- }
-
- /* ================== */
- /* dump sign header */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump sign header\n",MOD);
- dump_buf((uchar*)img_hdr,SEC_IMG_HEADER_SIZE);
-
- /* ================== */
- /* dump file data */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump file data\n",MOD);
- dump_buf(verify_buf+SEC_IMG_HEADER_SIZE,8);
-
- /* hash */
- SMSG(sec_info.bMsg,"[%s] generate hash ... \n",MOD);
- if(SEC_OK != (ret = sec_hash(verify_buf, verify_len, (uchar*)hash_buf, hash_len )))
- {
- SMSG(true,"[%s] generate hash fail\n\n",MOD);
- ret = ERR_SIGN_FORMAT_GENERATE_HASH_FAIL;
- goto _hash_fail;
- }
-
- /* ================== */
- /* dump hash data */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump hash data\n",MOD);
- dump_buf((uchar*)hash_buf,hash_len);
-
-
- SMSG(sec_info.bMsg,"[%s] generate hash pass\n\n",MOD);
-
-_hash_fail:
-_read_mtd_fail:
- ASF_FREE(verify_buf);
-_malloc_verify_fail:
-_end:
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-int sec_signfmt_verify_file_v2(ASF_FILE fp, SEC_IMG_HEADER *img_hdr)
-{
- uint32 ret = SEC_OK;
- uint32 verify_len = 0;
- uchar *verify_buf = NULL;
- uint32 img_sign_off = 0;
- uint32 img_sign_len = 0;
- uint32 signature_off = 0;
- uint32 signature_len = 0;
- uchar *signature_buf = NULL;
- uint32 read_sz = 0;
-
- /* init check */
- if(SEC_IMG_MAGIC != img_hdr->magic_number)
- {
- SMSG(true,"[%s] magic number is invalid '0x%x'\n",MOD,img_hdr->magic_number);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- /* check length */
- verify_len = SEC_IMG_HEADER_SIZE;
- img_sign_off = SEC_IMG_HEADER_SIZE;
- signature_off = 0;
- if (is_signfmt_v2(img_hdr))
- {
- img_sign_len = img_hdr->sign_length;
- img_sign_off += img_hdr->sign_offset;
- signature_off += img_hdr->signature_offset;
- }
- else
- {
- /* workaround for v1 */
- img_sign_len = ((SEC_IMG_HEADER_U*)img_hdr)->v1.sign_length;
- img_sign_off += ((SEC_IMG_HEADER_U*)img_hdr)->v1.sign_offset;
- signature_off += ((SEC_IMG_HEADER_U*)img_hdr)->v1.signature_offset;
- }
- verify_len += img_sign_len;
- signature_len = sec_signfmt_get_signature_length_v2();
-
- /* prepare signature buffer */
- signature_buf= (uchar*)ASF_MALLOC(signature_len);
- if(NULL == signature_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_sig_fail;
- }
- memset(signature_buf, 0x00, signature_len);
-
- /* fill in signature buffer */
- ASF_SEEK_SET(fp, signature_off);
-
- if (signature_len != (read_sz = ASF_READ(fp, signature_buf, signature_len)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,signature_len);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_sig_fail;
- }
-
- /* prepare verify buffer */
- verify_buf = ASF_MALLOC(verify_len);
- if(NULL == verify_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_verify_fail;
- }
- memset(verify_buf, 0x00, verify_len);
-
- /* fill in verify buffer */
- mcpy(verify_buf, img_hdr, SEC_IMG_HEADER_SIZE);
- ASF_SEEK_SET(fp, img_sign_off);
-
- if (img_sign_len != (read_sz = ASF_READ(fp, verify_buf+SEC_IMG_HEADER_SIZE, img_sign_len)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,img_sign_len);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_verify_fail;
- }
-
- /* ================== */
- /* dump sign header */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump sign header\n",MOD);
- dump_buf(verify_buf,SEC_IMG_HEADER_SIZE);
-
- /* ================== */
- /* dump file data */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump file data\n",MOD);
- dump_buf(verify_buf+SEC_IMG_HEADER_SIZE,8);
-
- /* ================== */
- /* dump signature */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump signature\n",MOD);
- dump_buf(signature_buf,signature_len);
-
- /* verify */
- SMSG(sec_info.bMsg,"[%s] verify (lock)... \n",MOD);
-
- osal_verify_lock();
-
- if(SEC_OK != (ret = sec_verify(verify_buf, verify_len, signature_buf, signature_len )))
- {
- osal_verify_unlock();
- SMSG(true,"[%s] verify fail (unlock), ret is %d\n\n",MOD,ret);
- goto _verify_fail;
- }
-
- osal_verify_unlock();
-
- SMSG(sec_info.bMsg,"[%s] verify pass (unlock)\n\n",MOD);
-
-_verify_fail:
-_read_verify_fail:
- ASF_FREE(verify_buf);
-_malloc_verify_fail:
-_read_sig_fail:
- ASF_FREE(signature_buf);
-_malloc_sig_fail:
-_magic_wrong_err:
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v3.c b/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v3.c
deleted file mode 100644
index 387b4c197..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v3.c
+++ /dev/null
@@ -1,852 +0,0 @@
-#include "sec_sign_extension.h"
-#include "sec_signfmt_v3.h"
-#include "sec_signfmt_util.h"
-#include "sec_log.h"
-#include "sec_error.h"
-#include "sec_boot_lib.h"
-#include "sec_wrapper.h"
-#include "sec_mtd_util.h"
-#include <mach/sec_osal.h>
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "SFMT_V3"
-
-
-/******************************************************************************
- * IMAGE VERIFICATION MEMORY DUMP FUNCTIONS
- ******************************************************************************/
-#define DUMP_MORE_FOR_DEBUG 0
-
-#if DUMP_MORE_FOR_DEBUG
-static void sec_signfmt_dump_buffer(uchar* buf, uint32 len)
-{
- uint32 i = 0;
-
- for (i =1; i <len+1; i++)
- {
- SMSG(true,"0x%x,",buf[i-1]);
-
- if(0 == (i%8))
- SMSG(true,"\n");
- }
-
- if(0 != (len%8))
- SMSG(true,"\n");
-}
-#endif
-
-/**************************************************************************
- * FUNCTION To Generate Hash by Chunk
- **************************************************************************/
-static int sec_signfmt_image_read(ASF_FILE fp, char* part_name, uint32 seek_offset, char* read_buf, uint32 read_len)
-{
- uint32 read_sz = 0;
- uint32 ret = SEC_OK;
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] Read image for length %d at offset 0x%x\n",MOD,read_len,seek_offset);
-#endif
-
- /* read from file */
- if (ASF_FILE_NULL != fp)
- {
- ASF_SEEK_SET(fp, seek_offset*sizeof(char));
- read_sz = ASF_READ(fp, read_buf, read_len);
-
- return read_sz;
- }
- /* read from mtd */
- else
- {
- if(SEC_OK != (ret = sec_dev_read_image ( pl2part(part_name),
- (char*)read_buf,
- seek_offset,
- read_len,
- NORMAL_ROM)))
- {
- SMSG(true,"[%s] read mtd '%s' fail at image offset 0x%x with length 0x%x\n",MOD,(char*)pl2part(part_name),seek_offset,read_len);
- return 0;
- }
-
- return read_len;
- }
-}
-
-
-static int sec_signfmt_gen_hash_by_chunk(ASF_FILE img_fd, char* part_name, uint32 img_hash_off, uint32 img_hash_len,
- uchar *final_hash_buf, SEC_CRYPTO_HASH_TYPE hash_type, uint32 chunk_size)
-{
- uint32 br = 0;
- uint32 ret = 0;
- uchar *chunk_buf = NULL;
- uchar *hash_tmp = NULL;
- uchar *hash_comb = NULL;
- uint32 seek_pos = 0;
- uint32 hash_size = get_hash_size(hash_type);
-#if DUMP_MORE_FOR_DEBUG
- uint32 chunk_count = ((img_hash_len-1)/chunk_size)+1;
-#endif
- uint32 read_size = 0;
- uint32 left_size = 0;
-
- if(!img_hash_len)
- {
-
- SMSG(true,"[%s] hash length is zero, no need to do hash\n",MOD);
- ret = -1;
- memset(final_hash_buf, 0x00, hash_size);
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Hash size is %d (0x%x)\n",MOD, hash_size, hash_size);
- SMSG(sec_info.bMsg,"[%s] Offset is %d (0x%x)\n",MOD, img_hash_off, img_hash_off);
- SMSG(sec_info.bMsg,"[%s] Size is %d (0x%x)\n",MOD, img_hash_len, img_hash_len);
- SMSG(sec_info.bMsg,"[%s] Chunk size is %d (0x%x)\n",MOD, chunk_size, chunk_size);
- SMSG(sec_info.bMsg,"[%s] Chunk count is %d (0x%x)\n",MOD, chunk_count, chunk_count);
-#endif
-
- /* allocate hash buffer */
- hash_tmp = ASF_MALLOC(hash_size);
- hash_comb = ASF_MALLOC(hash_size*2);
- memset(hash_tmp, 0x00, hash_size);
- memset(hash_comb, 0x00, hash_size*2);
-
- /* allocate buffer with known chunk size */
- chunk_buf = ASF_MALLOC(chunk_size);
-
- /* caculate first hash */
- seek_pos = img_hash_off;
- left_size = img_hash_len;
- read_size = (left_size>=chunk_size)?chunk_size:left_size;
- br = sec_signfmt_image_read(img_fd, part_name, seek_pos*sizeof(char), (char*)chunk_buf, read_size);
- if(br != read_size)
- {
- SMSG(true,"[%s] read image content fail, read offset = '0x%x'\n",MOD,seek_pos);
- ret = -2;
- goto end_error;
- }
- if( sec_hash(chunk_buf,read_size,hash_tmp,hash_size) == -1)
- {
- SMSG(true,"[%s] hash fail, offset is '0x%x'(A)\n",MOD,seek_pos);
- ret = -3;
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
- SMSG(sec_info.bMsg,"[%s] Data value(4 bytes) ==>\n",MOD);
- sec_signfmt_dump_buffer(chunk_buf, 4);
-
- SMSG(sec_info.bMsg,"[%s] Hash value(single) (0x%x): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* copy to compose buffer (first block) */
- mcpy(hash_comb,hash_tmp,hash_size);
-
- /* move next */
- seek_pos += read_size;
- left_size -= read_size;
-
- /* loop hash */
- while(left_size)
- {
- /* load data */
- read_size = (left_size>=chunk_size)?chunk_size:left_size;
- br = sec_signfmt_image_read(img_fd, part_name, seek_pos*sizeof(char), (char*)chunk_buf, read_size);
-
- if(br != read_size)
- {
- SMSG(true,"[%s] read image content fail, read offset = '0x%x'\n",MOD,seek_pos);
- ret = -4;
- goto end_error;
- }
-
- /* caculate this hash */
- if( sec_hash(chunk_buf,read_size,hash_tmp,hash_size) == -1)
- {
- SMSG(true,"[%s] hash fail, offset is '0x%x'(B)\n",MOD,seek_pos);
- ret = -5;
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
- SMSG(sec_info.bMsg,"[%s] Data value(4 bytes) ==>\n",MOD);
- sec_signfmt_dump_buffer(chunk_buf, 4);
-
- SMSG(sec_info.bMsg,"[%s] Hash value(single) (0x%x): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* compose two hash to buffer (second block) */
- mcpy(hash_comb+hash_size,hash_tmp,hash_size);
-
- /* caculate compose hash */
- if( sec_hash(hash_comb,hash_size*2,hash_tmp,hash_size) == -1)
- {
- SMSG(true,"[%s] hash fail, offset is '0x%x'(C)\n",MOD,seek_pos);
- ret = -6;
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
- SMSG(sec_info.bMsg,"[%s] Data value(4 bytes) ==>\n",MOD);
- sec_signfmt_dump_buffer(chunk_buf, 4);
-
- SMSG(sec_info.bMsg,"[%s] Hash value(comp) (0x%x): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* save this hash to compose buffer (first block) */
- mcpy(hash_comb,hash_tmp,hash_size);
-
- /* move next */
- seek_pos += read_size;
- left_size -= read_size;
- }
-
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Hash value(final) (0x%x): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* copy hash */
- mcpy(final_hash_buf,hash_tmp,hash_size);
-
-end_error:
- ASF_FREE(hash_comb);
- ASF_FREE(chunk_buf);
- ASF_FREE(hash_tmp);
-
- return ret;
-}
-
-
-/**************************************************************************
- * FUNCTION To Search Extension Header
- **************************************************************************/
-static uint32 sec_signfmt_search_extension(uchar *ext, uint32 ext_len, SEC_IMG_EXTENSTION_SET *ext_set)
-{
- SEC_EXTENSTION_END_MARK *search_pattern;
- uchar *d_ptr,*end_ptr;
- uint32 hash_only_idx = 0;
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump extension data ============> START\n",MOD);
- sec_signfmt_dump_buffer(ext,ext_len);
- SMSG(sec_info.bMsg,"[%s] Dump extension data ============> END\n",MOD);
-#endif
-
- end_ptr = ext + ext_len;
- d_ptr = ext;
-
- while( d_ptr < end_ptr )
- {
- search_pattern = (SEC_EXTENSTION_END_MARK *)d_ptr;
-
- if(search_pattern->magic!=SEC_EXTENSION_HEADER_MAGIC)
- {
- SMSG(true,"[%s] Image extension header magic wrong\n",MOD);
- return ERR_SIGN_FORMAT_EXT_HDR_MAGIC_WRONG;
- }
-
- switch(search_pattern->ext_type)
- {
- case SEC_EXT_HDR_CRYPTO:
- ext_set->crypto = (SEC_EXTENSTION_CRYPTO *)d_ptr;
- d_ptr += sizeof(SEC_EXTENSTION_CRYPTO);
- break;
- case SEC_EXT_HDR_FRAG_CFG:
- ext_set->frag = (SEC_FRAGMENT_CFG *)d_ptr;
- d_ptr += sizeof(SEC_FRAGMENT_CFG);
- ext_set->hash_only = (SEC_EXTENSTION_HASH_ONLY **)ASF_MALLOC(ext_set->frag->frag_count*sizeof(SEC_EXTENSTION_HASH_ONLY *));
- break;
- case SEC_EXT_HDR_HASH_ONLY:
- ext_set->hash_only[hash_only_idx] = (SEC_EXTENSTION_HASH_ONLY *)d_ptr;
- d_ptr += sizeof(SEC_EXTENSTION_HASH_ONLY) + get_hash_size(ext_set->hash_only[hash_only_idx]->sub_type);
- hash_only_idx++;
- break;
- case SEC_EXT_HDR_END_MARK:
- ext_set->end = (SEC_EXTENSTION_END_MARK *)d_ptr;
- d_ptr += sizeof(SEC_EXTENSTION_END_MARK);
- break;
- case SEC_EXT_HDR_HASH_SIG:
- default:
- SMSG(true,"[%s] Image header type not support %d\n",MOD,search_pattern->ext_type);
- return ERR_SIGN_FORMAT_EXT_TYPE_NOT_SUPPORT;
- }
- }
-
- if( ext_set->crypto == NULL || ext_set->frag == NULL || ext_set->hash_only == NULL || ext_set->end == NULL)
- {
- SMSG(true,"[%s] Some header is not searched\n",MOD);
- return ERR_SIGN_FORMAT_EXT_HDR_NOT_FOUND;
- }
-
- return SEC_OK;
-}
-
-
-/**************************************************************************
- * FUNCTION To Get Hash Length
- **************************************************************************/
-unsigned int sec_signfmt_get_hash_length_v3(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr, char *ext_buf)
-{
- uint32 crypto_hdr_offset = 0;
- uint32 read_sz = 0;
- SEC_EXTENSTION_CRYPTO ext_crypto;
- SEC_EXTENSTION_CRYPTO *ext_crypto_ptr = NULL;
- uint32 ext_crypto_size = sizeof(SEC_EXTENSTION_CRYPTO);
-
- /* get from seccfg's extension header */
- if (ASF_FILE_NULL == fp)
- {
- ext_crypto_ptr = (SEC_EXTENSTION_CRYPTO *)(ext_buf + img_if->ext_offset + img_if->header.v3.signature_length);
-
- return get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_crypto_ptr->hash_type);
- }
- /* get from file's extension header */
- else
- {
- memset(&ext_crypto, 0x00, ext_crypto_size);
-
- /* seek to crypto header offset */
- crypto_hdr_offset = file_img_hdr->signature_offset + file_img_hdr->signature_length;
-
- ASF_SEEK_SET(fp, crypto_hdr_offset);
-
- /* read crypto header */
- if (ext_crypto_size != (read_sz = ASF_READ(fp, (char*)&ext_crypto, ext_crypto_size)))
- {
- SMSG(true,"[%s] read sz '%d' != '%d'\n",MOD,read_sz,ext_crypto_size);
- return -1;
- }
-
- return get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_crypto.hash_type);
- }
-}
-
-/**************************************************************************
- * FUNCTION To Get Signature Length
- **************************************************************************/
-unsigned int sec_signfmt_get_signature_length_v3(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr, char *ext_buf)
-{
- uint32 crypto_hdr_offset = 0;
- uint32 read_sz = 0;
- SEC_EXTENSTION_CRYPTO ext_crypto;
- SEC_EXTENSTION_CRYPTO *ext_crypto_ptr = NULL;
- uint32 ext_crypto_size = sizeof(SEC_EXTENSTION_CRYPTO);
-
- /* get from seccfg's extension header */
- if (ASF_FILE_NULL == fp)
- {
- ext_crypto_ptr = (SEC_EXTENSTION_CRYPTO *)(ext_buf + img_if->ext_offset + img_if->header.v3.signature_length);
-
- return get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_crypto_ptr->sig_type);
- }
- /* get from file's extension header */
- else
- {
- memset(&ext_crypto, 0x00, ext_crypto_size);
-
- /* seek to crypto header offset */
- crypto_hdr_offset = file_img_hdr->signature_offset + file_img_hdr->signature_length;
- ASF_SEEK_SET(fp, crypto_hdr_offset);
-
- /* read crypto header */
- if (ext_crypto_size != (read_sz = ASF_READ(fp, (char*)&ext_crypto, ext_crypto_size)))
- {
- SMSG(true,"[%s] read sz '%d' != '%d'\n",MOD,read_sz,ext_crypto_size);
- return -1;
- }
-
- return get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_crypto.sig_type);
- }
-}
-
-/**************************************************************************
- * FUNCTION To Get Extension Length
- **************************************************************************/
-unsigned int sec_signfmt_get_extension_length_v3(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr)
-{
- /* the extension include signature + hash + extension header */
-
- uint32 file_size = 0;
-
- /* get from seccfg's extension header */
- if (ASF_FILE_NULL == fp)
- {
- return img_if->ext_len;
- }
- /* get from file's extension header */
- else
- {
- ASF_SEEK_END(fp, 0);
- file_size = ASF_FILE_POS(fp);
-
- return (file_size-SEC_IMG_HEADER_SIZE-file_img_hdr->image_length);
- }
-}
-
-
-/**************************************************************************
- * FUNCTION To Get Image Hash
- **************************************************************************/
-int sec_signfmt_calculate_image_hash_v3(char* part_name, SECURE_IMG_INFO_V3 *img_if, char *final_hash_buf,
- unsigned int hash_len, char *ext_buf)
-{
- unsigned int ret = SEC_OK;
- SEC_IMG_HEADER *img_hdr = (SEC_IMG_HEADER *)&img_if->header.v3;
- SEC_IMG_EXTENSTION_SET ext_set;
- uint32 ext_hdr_offset = 0;
- uint32 ext_hdr_len = 0;
- uchar *ext_hdr_buf = NULL;
- uint32 hash_size = 0;
- uint32 sig_size = 0;
- uint32 i = 0;
- uchar *cal_hash_buf = NULL;
- uint32 cal_hash_buf_len = 0;
- uchar *tmp_ptr = NULL;
- uchar *verify_data = NULL;
- uint32 verify_data_len = 0;
- uint32 real_chunk_size = 0;
-
- /* ======================== */
- /* init check */
- /* ======================== */
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump header ============> START\n",MOD);
- sec_signfmt_dump_buffer((uchar*)img_hdr,sizeof(SEC_IMG_HEADER));
- SMSG(sec_info.bMsg,"[%s] Dump header ============> END\n",MOD);
-#endif
-
- if (SEC_IMG_MAGIC != img_hdr->magic_number)
- {
- SMSG(true,"[%s] magic number is invalid '0x%x'\n",MOD,img_hdr->magic_number);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- if (SEC_EXTENSION_MAGIC != img_hdr->sign_offset)
- {
- SMSG(true,"[%s] extension magic number is invalid '0x%x'\n",MOD,img_hdr->sign_offset);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- /* ======================== */
- /* search for extension header */
- /* ======================== */
- memset(&ext_set, 0x00, sizeof(SEC_IMG_EXTENSTION_SET));
- ext_hdr_offset = img_if->ext_offset + img_hdr->signature_length;
- ext_hdr_len = img_if->ext_len - img_hdr->signature_length;
- ext_hdr_buf = (uchar*)(ext_buf + ext_hdr_offset);
- if( SEC_OK != (ret = sec_signfmt_search_extension(ext_hdr_buf, ext_hdr_len, &ext_set)) )
- {
- SMSG(true,"[%s] Image extension header not found\n",MOD);
- goto _ext_hdr_search_fail;
- }
- hash_size = get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_set.crypto->hash_type);
- sig_size = get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_set.crypto->sig_type);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> START\n",MOD);
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(sec_info.bMsg,"[%s] Dump EXT hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(ext_set.hash_only[i]->hash_data,hash_size);
- }
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* calculate each hash by chunk */
- /* ======================== */
- cal_hash_buf_len = hash_size*ext_set.frag->frag_count;
- cal_hash_buf = (uchar*)ASF_MALLOC(cal_hash_buf_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_cal_buf_fail;
- }
- memset(cal_hash_buf, 0x00, cal_hash_buf_len);
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] dump reset data\n",MOD);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr = cal_hash_buf;
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Total cal hash length is %d\n",MOD,cal_hash_buf_len);
-#endif
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- memset(tmp_ptr, 0x00, hash_size);
- if(ext_set.frag->chunk_size == 0)
- {
- real_chunk_size = ext_set.hash_only[i]->hash_len;
- }
- else
- {
- real_chunk_size = ext_set.frag->chunk_size;
- }
- if(sec_signfmt_gen_hash_by_chunk(ASF_FILE_NULL, part_name, ext_set.hash_only[i]->hash_offset, ext_set.hash_only[i]->hash_len,
- tmp_ptr, ext_set.hash_only[i]->sub_type, real_chunk_size)!=0)
- {
- ret = ERR_SIGN_FORMAT_CAL_HASH_BY_CHUNK_FAIL;
- goto _gen_hash_by_chunk_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after: [%d], offset is 0x%x\n",MOD,i,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr += hash_size;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after all done, offset is 0x%x\n",MOD,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
-
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> START\n",MOD);
- tmp_ptr = cal_hash_buf;
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(true,"[%s] Dump CAL hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(tmp_ptr,hash_size);
- tmp_ptr += hash_size;
- }
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* copy cal hash to extension header */
- /* ======================== */
- tmp_ptr = cal_hash_buf;
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- mcpy(ext_set.hash_only[i]->hash_data, tmp_ptr, hash_size);
- tmp_ptr += hash_size;
- }
-
- /* ======================== */
- /* compose final verify buffer */
- /* ======================== */
- verify_data_len = SEC_IMG_HEADER_SIZE+cal_hash_buf_len+ext_hdr_len;
- verify_data = (uchar*)ASF_MALLOC(verify_data_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_verify_buf_fail;
- }
- tmp_ptr = verify_data;
- /* copy header */
- mcpy(tmp_ptr,img_hdr,SEC_IMG_HEADER_SIZE);
- tmp_ptr += SEC_IMG_HEADER_SIZE;
- /* copy cal hash */
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- mcpy(tmp_ptr,cal_hash_buf+i*hash_size,hash_size);
- tmp_ptr += hash_size;
- }
- /* copy extension header */
- mcpy(tmp_ptr,ext_hdr_buf,ext_hdr_len);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump verify data (%d):\n",MOD,verify_data_len);
- sec_signfmt_dump_buffer(verify_data,verify_data_len);
-#endif
-
- /* ======================== */
- /* generate final hash */
- /* ======================== */
-
- /* hash */
- SMSG(sec_info.bMsg,"[%s] generate hash ... \n",MOD);
- if(SEC_OK != (ret = sec_hash(verify_data, verify_data_len, (uchar*)final_hash_buf, hash_len )))
- {
- SMSG(true,"[%s] generate hash fail\n\n",MOD);
- ret = ERR_SIGN_FORMAT_GENERATE_HASH_FAIL;
- goto _hash_fail;
- }
-
- /* ================== */
- /* dump hash data */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump hash data\n",MOD);
- dump_buf((uchar*)final_hash_buf,hash_len);
-
- SMSG(sec_info.bMsg,"[%s] generate hash pass\n\n",MOD);
-
-_hash_fail:
- ASF_FREE(verify_data);
-_malloc_verify_buf_fail:
-_gen_hash_by_chunk_fail:
- ASF_FREE(cal_hash_buf);
-_malloc_cal_buf_fail:
-_ext_hdr_search_fail:
-_magic_wrong_err:
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTIONS To Verify File
- **************************************************************************/
-int sec_signfmt_verify_file_v3(ASF_FILE fp, SEC_IMG_HEADER *img_hdr)
-{
- uint32 ret = SEC_OK;
- uint32 final_hash_sig_len = 0;
- uchar *final_hash_sig_buf = NULL;
- uint32 read_sz = 0;
- SEC_IMG_EXTENSTION_SET ext_set;
- uint32 ext_hdr_offset = 0;
- uint32 ext_hdr_len = 0;
- uchar *ext_hdr_buf = NULL;
- uint32 file_size = 0;
- uint32 hash_size = 0;
- uint32 sig_size = 0;
- uint32 i = 0;
- uchar *cal_hash_buf = NULL;
- uint32 cal_hash_buf_len = 0;
- uchar *tmp_ptr = NULL;
- uchar *verify_data = NULL;
- uint32 verify_data_len = 0;
- uint32 real_chunk_size = 0;
-
- /* ======================== */
- /* init check */
- /* ======================== */
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump header ============> START\n",MOD);
- sec_signfmt_dump_buffer((uchar*)img_hdr,sizeof(SEC_IMG_HEADER));
- SMSG(sec_info.bMsg,"[%s] Dump header ============> END\n",MOD);
-#endif
-
- if (SEC_IMG_MAGIC != img_hdr->magic_number)
- {
- SMSG(true,"[%s] magic number is invalid '0x%x'\n",MOD,img_hdr->magic_number);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- if (SEC_EXTENSION_MAGIC != img_hdr->sign_offset)
- {
- SMSG(true,"[%s] extension magic number is invalid '0x%x'\n",MOD,img_hdr->sign_offset);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- /* ======================== */
- /* locate final signature and hash */
- /* ======================== */
- final_hash_sig_len = img_hdr->signature_length;
- final_hash_sig_buf = (uchar*)ASF_MALLOC(final_hash_sig_len);
- if (NULL == final_hash_sig_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_hash_sig_fail;
- }
- ASF_SEEK_SET(fp, img_hdr->signature_offset);
-
- if (final_hash_sig_len != (read_sz = ASF_READ(fp, final_hash_sig_buf, final_hash_sig_len)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,final_hash_sig_len);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_hash_sig_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump sign and hash value ============> START\n",MOD);
- sec_signfmt_dump_buffer(final_hash_sig_buf,final_hash_sig_len);
- SMSG(sec_info.bMsg,"[%s] Dump sign and hash value ============> END\n",MOD);
-#endif
-
- /* read file size */
- ASF_SEEK_END(fp, 0);
- file_size = ASF_FILE_POS(fp);
-
- /* ======================== */
- /* search for extension header */
- /* ======================== */
- memset(&ext_set, 0x00, sizeof(SEC_IMG_EXTENSTION_SET));
- ext_hdr_offset = SEC_IMG_HEADER_SIZE + img_hdr->image_length + img_hdr->signature_length;
- ext_hdr_len = file_size - ext_hdr_offset;
- ext_hdr_buf = (uchar*)ASF_MALLOC(ext_hdr_len);
- if (NULL == ext_hdr_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_ext_hdr_fail;
- }
- ASF_SEEK_SET(fp, ext_hdr_offset);
-
- if (ext_hdr_len != (read_sz = ASF_READ(fp, ext_hdr_buf, ext_hdr_len)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,ext_hdr_len);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_ext_hdr_fail;
- }
- if( SEC_OK != (ret = sec_signfmt_search_extension(ext_hdr_buf, ext_hdr_len, &ext_set)) )
- {
- SMSG(true,"[%s] Image extension header not found\n",MOD);
- goto _ext_hdr_search_fail;
- }
-
- hash_size = get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_set.crypto->hash_type);
- sig_size = get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_set.crypto->sig_type);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> START\n",MOD);
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(sec_info.bMsg,"[%s] Dump EXT hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(ext_set.hash_only[i]->hash_data,hash_size);
- }
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* calculate each hash by chunk */
- /* ======================== */
- cal_hash_buf_len = hash_size*ext_set.frag->frag_count;
- cal_hash_buf = (uchar*)ASF_MALLOC(cal_hash_buf_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_cal_buf_fail;
- }
- memset(cal_hash_buf, 0x00, cal_hash_buf_len);
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] dump reset data\n",MOD);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr = cal_hash_buf;
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Total cal hash length is %d\n",MOD,cal_hash_buf_len);
-#endif
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- memset(tmp_ptr, 0x00, hash_size);
- if(ext_set.frag->chunk_size == 0)
- {
- real_chunk_size = ext_set.hash_only[i]->hash_len;
- }
- else
- {
- real_chunk_size = ext_set.frag->chunk_size;
- }
- if(sec_signfmt_gen_hash_by_chunk(fp, NULL, SEC_IMG_HEADER_SIZE+ext_set.hash_only[i]->hash_offset, ext_set.hash_only[i]->hash_len,
- tmp_ptr, ext_set.hash_only[i]->sub_type, real_chunk_size)!=0)
- {
- ret = ERR_SIGN_FORMAT_CAL_HASH_BY_CHUNK_FAIL;
- goto _gen_hash_by_chunk_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after: [%d], offset is 0x%x\n",MOD,i,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr += hash_size;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after all done, offset is 0x%x\n",MOD,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
-
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> START\n",MOD);
- tmp_ptr = cal_hash_buf;
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(tmp_ptr,hash_size);
- tmp_ptr += hash_size;
- }
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* compose final verify buffer */
- /* ======================== */
- verify_data_len = SEC_IMG_HEADER_SIZE+cal_hash_buf_len+ext_hdr_len;
- verify_data = (uchar*)ASF_MALLOC(verify_data_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_verify_buf_fail;
- }
- tmp_ptr = verify_data;
- /* copy header */
- mcpy(tmp_ptr,img_hdr,SEC_IMG_HEADER_SIZE);
- tmp_ptr += SEC_IMG_HEADER_SIZE;
- /* copy cal hash */
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- mcpy(tmp_ptr,cal_hash_buf+i*hash_size,hash_size);
- tmp_ptr += hash_size;
- }
- /* copy extension header */
- mcpy(tmp_ptr,ext_hdr_buf,ext_hdr_len);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump verify data (%d):\n",MOD,verify_data_len);
- sec_signfmt_dump_buffer(verify_data,verify_data_len);
-#endif
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump signature data (%d):\n",MOD,sig_size);
- sec_signfmt_dump_buffer(final_hash_sig_buf,sig_size);
-#endif
-
- osal_verify_lock();
-
- /* ======================== */
- /* verify buffer */
- /* ======================== */
- SMSG(sec_info.bMsg,"[%s] verify (lock)... \n",MOD);
- if(SEC_OK != (ret = sec_verify(verify_data, verify_data_len, final_hash_sig_buf, sig_size )))
- {
- osal_verify_unlock();
- SMSG(true,"[%s] verify fail (unlock), ret is %d\n\n",MOD,ret);
- goto _verify_fail;
- }
-
- osal_verify_unlock();
-
- SMSG(sec_info.bMsg,"[%s] verify pass (unlock)\n\n",MOD);
-
-_verify_fail:
- ASF_FREE(verify_data);
-_malloc_verify_buf_fail:
-_gen_hash_by_chunk_fail:
- ASF_FREE(cal_hash_buf);
-_malloc_cal_buf_fail:
-_ext_hdr_search_fail:
-_read_ext_hdr_fail:
- ASF_FREE(ext_hdr_buf);
-_malloc_ext_hdr_fail:
-_read_hash_sig_fail:
- ASF_FREE(final_hash_sig_buf);
-_malloc_hash_sig_fail:
-_magic_wrong_err:
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v4.c b/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v4.c
deleted file mode 100644
index 439e5dc74..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_signfmt_v4.c
+++ /dev/null
@@ -1,877 +0,0 @@
-#include "sec_sign_extension.h"
-#include "sec_signfmt_v4.h"
-#include "sec_signfmt_util.h"
-#include "sec_log.h"
-#include "sec_error.h"
-#include "sec_boot_lib.h"
-#include "sec_wrapper.h"
-#include "sec_mtd_util.h"
-#include <mach/sec_osal.h>
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "SFMT_V4"
-
-
-/******************************************************************************
- * IMAGE VERIFICATION MEMORY DUMP FUNCTIONS
- ******************************************************************************/
-#define DUMP_MORE_FOR_DEBUG 0
-
-static u64 sec_get_u64(uint32 high, uint32 low)
-{
- u64 value = 0;
-
- value = high;
- value = (value << 32) & 0xFFFFFFFF00000000ULL;
- value += low;
-
- return value;
-}
-
-#if DUMP_MORE_FOR_DEBUG
-static void sec_signfmt_dump_buffer(uchar* buf, uint32 len)
-{
- uint32 i = 0;
-
- for (i =1; i <len+1; i++)
- {
- SMSG(true,"0x%x,",buf[i-1]);
-
- if(0 == (i%8))
- SMSG(true,"\n");
- }
-
- if(0 != (len%8))
- SMSG(true,"\n");
-}
-#endif
-
-/**************************************************************************
- * FUNCTION To Generate Hash by Chunk
- **************************************************************************/
-static int sec_signfmt_image_read_64(ASF_FILE fp, char* part_name, u64 seek_offset, char* read_buf, uint32 read_len)
-{
- uint32 read_sz = 0;
- uint32 ret = SEC_OK;
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(true,"[%s] Read image for length %d at offset 0x%llx\n",MOD,read_len,seek_offset);
-#endif
-
- /* read from file */
- if (ASF_FILE_NULL != fp)
- {
- ASF_SEEK_SET(fp, seek_offset*sizeof(char));
- read_sz = ASF_READ(fp, read_buf, read_len);
-
- return read_sz;
- }
- /* read from mtd */
- else
- {
- if(SEC_OK != (ret = sec_dev_read_image ( pl2part(part_name),
- (char*)read_buf,
- seek_offset,
- read_len,
- NORMAL_ROM)))
- {
- SMSG(true,"[%s] read mtd '%s' fail at image offset 0x%llx with length 0x%x\n",MOD,(char*)pl2part(part_name),seek_offset,read_len);
- return 0;
- }
-
- return read_len;
- }
-}
-
-
-static int sec_signfmt_gen_hash_by_chunk_64(ASF_FILE img_fd, char* part_name, u64 img_hash_off, u64 img_hash_len,
- uchar *final_hash_buf, SEC_CRYPTO_HASH_TYPE hash_type, uint32 chunk_size)
-{
- uint32 br = 0;
- uint32 ret = 0;
- uchar *chunk_buf = NULL;
- uchar *hash_tmp = NULL;
- uchar *hash_comb = NULL;
- u64 seek_pos = 0;
- uint32 hash_size = get_hash_size(hash_type);
-#if DUMP_MORE_FOR_DEBUG
- u64 chunk_count = ((img_hash_len-1)/chunk_size)+1;
-#endif
- uint32 read_size = 0;
- u64 left_size = 0;
-
- if(!img_hash_len)
- {
-
- SMSG(true,"[%s] hash length is zero, no need to do hash\n",MOD);
- ret = -1;
- memset(final_hash_buf, 0x00, hash_size);
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Hash size is %d (0x%x)\n",MOD, hash_size, hash_size);
- SMSG(sec_info.bMsg,"[%s] Offset is %d (0x%llx)\n",MOD, img_hash_off, img_hash_off);
- SMSG(sec_info.bMsg,"[%s] Size is %d (0x%llx)\n",MOD, img_hash_len, img_hash_len);
- SMSG(sec_info.bMsg,"[%s] Chunk size is %d (0x%x)\n",MOD, chunk_size, chunk_size);
- SMSG(sec_info.bMsg,"[%s] Chunk count is %d (0x%llx)\n",MOD, chunk_count, chunk_count);
-#endif
-
- /* allocate hash buffer */
- hash_tmp = ASF_MALLOC(hash_size);
- hash_comb = ASF_MALLOC(hash_size*2);
- memset(hash_tmp, 0x00, hash_size);
- memset(hash_comb, 0x00, hash_size*2);
-
- /* allocate buffer with known chunk size */
- chunk_buf = ASF_MALLOC(chunk_size);
-
- /* caculate first hash */
- seek_pos = img_hash_off;
- left_size = img_hash_len;
- read_size = (left_size>=chunk_size)?chunk_size:(left_size & 0xFFFFFFFF);
- br = sec_signfmt_image_read_64(img_fd, part_name, seek_pos*sizeof(char), (char*)chunk_buf, read_size);
- if(br != read_size)
- {
- SMSG(true,"[%s] read image content fail, read offset = '0x%llx'\n",MOD,seek_pos);
- ret = -2;
- goto end_error;
- }
- if( sec_hash(chunk_buf,read_size,hash_tmp,hash_size) == -1)
- {
- SMSG(true,"[%s] hash fail, offset is '0x%llx'(A)\n",MOD,seek_pos);
- ret = -3;
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
- SMSG(sec_info.bMsg,"[%s] Data value(4 bytes) ==>\n",MOD);
- sec_signfmt_dump_buffer(chunk_buf, 4);
-
- SMSG(sec_info.bMsg,"[%s] Hash value(single) (0x%llx): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* copy to compose buffer (first block) */
- mcpy(hash_comb,hash_tmp,hash_size);
-
- /* move next */
- seek_pos += read_size;
- left_size -= read_size;
-
- /* loop hash */
- while(left_size)
- {
- /* load data */
- read_size = (left_size>=chunk_size)?chunk_size:(left_size & 0xFFFFFFFF);
- br = sec_signfmt_image_read_64(img_fd, part_name, seek_pos*sizeof(char), (char*)chunk_buf, read_size);
-
- if(br != read_size)
- {
- SMSG(true,"[%s] read image content fail, read offset = '0x%llx'\n",MOD,seek_pos);
- ret = -4;
- goto end_error;
- }
-
- /* caculate this hash */
- if( sec_hash(chunk_buf,read_size,hash_tmp,hash_size) == -1)
- {
- SMSG(true,"[%s] hash fail, offset is '0x%llx'(B)\n",MOD,seek_pos);
- ret = -5;
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
- SMSG(sec_info.bMsg,"[%s] Data value(4 bytes) ==>\n",MOD);
- sec_signfmt_dump_buffer(chunk_buf, 4);
-
- SMSG(sec_info.bMsg,"[%s] Hash value(single) (0x%llx): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* compose two hash to buffer (second block) */
- mcpy(hash_comb+hash_size,hash_tmp,hash_size);
-
- /* caculate compose hash */
- if( sec_hash(hash_comb,hash_size*2,hash_tmp,hash_size) == -1)
- {
- SMSG(true,"[%s] hash fail, offset is '0x%llx'(C)\n",MOD,seek_pos);
- ret = -6;
- goto end_error;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
- SMSG(sec_info.bMsg,"[%s] Data value(4 bytes) ==>\n",MOD);
- sec_signfmt_dump_buffer(chunk_buf, 4);
-
- SMSG(sec_info.bMsg,"[%s] Hash value(comp) (0x%llx): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* save this hash to compose buffer (first block) */
- mcpy(hash_comb,hash_tmp,hash_size);
-
- /* move next */
- seek_pos += read_size;
- left_size -= read_size;
- }
-
- /* ------------------------------------- */
- /* dump hash value for debug */
- /* ------------------------------------- */
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Hash value(final) (0x%llx): \n",MOD, seek_pos);
- sec_signfmt_dump_buffer(hash_tmp, hash_size);
-#endif
-
- /* copy hash */
- mcpy(final_hash_buf,hash_tmp,hash_size);
-
-end_error:
- ASF_FREE(hash_comb);
- ASF_FREE(chunk_buf);
- ASF_FREE(hash_tmp);
-
- return ret;
-}
-
-
-/**************************************************************************
- * FUNCTION To Search Extension Header
- **************************************************************************/
-static uint32 sec_signfmt_search_extension_v4(uchar *ext, uint32 ext_len, SEC_IMG_EXTENSTION_SET *ext_set)
-{
- SEC_EXTENSTION_END_MARK *search_pattern;
- uchar *d_ptr,*end_ptr;
- uint32 hash_only_idx = 0;
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump extension data ============> START\n",MOD);
- sec_signfmt_dump_buffer(ext,ext_len);
- SMSG(sec_info.bMsg,"[%s] Dump extension data ============> END\n",MOD);
-#endif
-
- end_ptr = ext + ext_len;
- d_ptr = ext;
-
- while( d_ptr < end_ptr )
- {
- search_pattern = (SEC_EXTENSTION_END_MARK *)d_ptr;
-
- if(search_pattern->magic!=SEC_EXTENSION_HEADER_MAGIC)
- {
- SMSG(true,"[%s] Image extension header magic wrong\n",MOD);
- return ERR_SIGN_FORMAT_EXT_HDR_MAGIC_WRONG;
- }
-
- switch(search_pattern->ext_type)
- {
- case SEC_EXT_HDR_CRYPTO:
- ext_set->crypto = (SEC_EXTENSTION_CRYPTO *)d_ptr;
- d_ptr += sizeof(SEC_EXTENSTION_CRYPTO);
- break;
- case SEC_EXT_HDR_FRAG_CFG:
- ext_set->frag = (SEC_FRAGMENT_CFG *)d_ptr;
- d_ptr += sizeof(SEC_FRAGMENT_CFG);
- ext_set->hash_only_64 = (SEC_EXTENSTION_HASH_ONLY_64 **)ASF_MALLOC(ext_set->frag->frag_count*sizeof(SEC_EXTENSTION_HASH_ONLY_64 *));
- break;
- case SEC_EXT_HDR_HASH_ONLY_64:
- ext_set->hash_only_64[hash_only_idx] = (SEC_EXTENSTION_HASH_ONLY_64 *)d_ptr;
- d_ptr += sizeof(SEC_EXTENSTION_HASH_ONLY_64) + get_hash_size(ext_set->hash_only_64[hash_only_idx]->sub_type);
- hash_only_idx++;
- break;
- case SEC_EXT_HDR_END_MARK:
- ext_set->end = (SEC_EXTENSTION_END_MARK *)d_ptr;
- d_ptr += sizeof(SEC_EXTENSTION_END_MARK);
- break;
- case SEC_EXT_HDR_HASH_SIG:
- default:
- SMSG(true,"[%s] Image header type not support %d\n",MOD,search_pattern->ext_type);
- return ERR_SIGN_FORMAT_EXT_TYPE_NOT_SUPPORT;
- }
- }
-
- if( ext_set->crypto == NULL || ext_set->frag == NULL || ext_set->hash_only_64 == NULL || ext_set->end == NULL)
- {
- SMSG(true,"[%s] Some header is not searched\n",MOD);
- return ERR_SIGN_FORMAT_EXT_HDR_NOT_FOUND;
- }
-
- return SEC_OK;
-}
-
-
-/**************************************************************************
- * FUNCTION To Get Hash Length
- **************************************************************************/
-unsigned int sec_signfmt_get_hash_length_v4(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p, char *ext_buf)
-{
- u64 crypto_hdr_offset = 0;
- uint32 read_sz = 0;
- SEC_EXTENSTION_CRYPTO ext_crypto;
- SEC_EXTENSTION_CRYPTO *ext_crypto_ptr = NULL;
- uint32 ext_crypto_size = sizeof(SEC_EXTENSTION_CRYPTO);
- SEC_IMG_HEADER_V4 *file_img_hdr = (SEC_IMG_HEADER_V4*)file_img_hdr_p;
-
- /* get from seccfg's extension header */
- if (ASF_FILE_NULL == fp)
- {
- ext_crypto_ptr = (SEC_EXTENSTION_CRYPTO *)(ext_buf + img_if->ext_offset + img_if->header.v4.signature_length);
-
- return get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_crypto_ptr->hash_type);
- }
- /* get from file's extension header */
- else
- {
- memset(&ext_crypto, 0x00, ext_crypto_size);
-
- /* seek to crypto header offset */
- crypto_hdr_offset = sec_get_u64(file_img_hdr->image_length_high,file_img_hdr->image_length_low);
- crypto_hdr_offset += file_img_hdr->image_offset;
- crypto_hdr_offset += file_img_hdr->signature_length;
-
- ASF_SEEK_SET(fp, crypto_hdr_offset);
-
- /* read crypto header */
- if (ext_crypto_size != (read_sz = ASF_READ(fp, (char*)&ext_crypto, ext_crypto_size)))
- {
- SMSG(true,"[%s] read sz '%d' != '%d'\n",MOD,read_sz,ext_crypto_size);
- return -1;
- }
-
- return get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_crypto.hash_type);
- }
-}
-
-/**************************************************************************
- * FUNCTION To Get Signature Length
- **************************************************************************/
-unsigned int sec_signfmt_get_signature_length_v4(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p, char *ext_buf)
-{
- uint32 crypto_hdr_offset = 0;
- uint32 read_sz = 0;
- SEC_EXTENSTION_CRYPTO ext_crypto;
- SEC_EXTENSTION_CRYPTO *ext_crypto_ptr = NULL;
- uint32 ext_crypto_size = sizeof(SEC_EXTENSTION_CRYPTO);
- SEC_IMG_HEADER_V4 *file_img_hdr = (SEC_IMG_HEADER_V4*)file_img_hdr_p;
-
- /* get from seccfg's extension header */
- if (ASF_FILE_NULL == fp)
- {
- ext_crypto_ptr = (SEC_EXTENSTION_CRYPTO *)(ext_buf + img_if->ext_offset + img_if->header.v4.signature_length);
-
- return get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_crypto_ptr->sig_type);
- }
- /* get from file's extension header */
- else
- {
- memset(&ext_crypto, 0x00, ext_crypto_size);
-
- /* seek to crypto header offset */
- crypto_hdr_offset = sec_get_u64(file_img_hdr->image_length_high,file_img_hdr->image_length_low);
- crypto_hdr_offset += file_img_hdr->image_offset;
- crypto_hdr_offset += file_img_hdr->signature_length;
- ASF_SEEK_SET(fp, crypto_hdr_offset);
-
- /* read crypto header */
- if (ext_crypto_size != (read_sz = ASF_READ(fp, (char*)&ext_crypto, ext_crypto_size)))
- {
- SMSG(true,"[%s] read sz '%d' != '%d'\n",MOD,read_sz,ext_crypto_size);
- return -1;
- }
-
- return get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_crypto.sig_type);
- }
-}
-
-/**************************************************************************
- * FUNCTION To Get Extension Length
- **************************************************************************/
-unsigned int sec_signfmt_get_extension_length_v4(SECURE_IMG_INFO_V3 *img_if, ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p)
-{
- /* the extension include signature + hash + extension header */
-
- u64 file_size = 0;
- SEC_IMG_HEADER_V4 *file_img_hdr = (SEC_IMG_HEADER_V4*)file_img_hdr_p;
-
- /* get from seccfg's extension header */
- if (ASF_FILE_NULL == fp)
- {
- return img_if->ext_len;
- }
- /* get from file's extension header */
- else
- {
- ASF_SEEK_END(fp, 0);
- file_size = ASF_FILE_POS(fp);
-
- file_size -= SEC_IMG_HEADER_SIZE;
- file_size -= sec_get_u64(file_img_hdr->image_length_high,file_img_hdr->image_length_low);
-
- return (file_size & 0xFFFFFFFF);
- }
-}
-
-
-/**************************************************************************
- * FUNCTION To Get Image Hash
- **************************************************************************/
-int sec_signfmt_calculate_image_hash_v4(char* part_name, SECURE_IMG_INFO_V3 *img_if, char *final_hash_buf,
- unsigned int hash_len, char *ext_buf)
-{
- unsigned int ret = SEC_OK;
- SEC_IMG_HEADER_V4 *img_hdr = (SEC_IMG_HEADER_V4 *)&img_if->header.v4;
- SEC_IMG_EXTENSTION_SET ext_set;
- uint32 ext_hdr_offset = 0;
- uint32 ext_hdr_len = 0;
- uchar *ext_hdr_buf = NULL;
- uint32 hash_size = 0;
- uint32 sig_size = 0;
- uint32 i = 0;
- uchar *cal_hash_buf = NULL;
- uint32 cal_hash_buf_len = 0;
- uchar *tmp_ptr = NULL;
- uchar *verify_data = NULL;
- uint32 verify_data_len = 0;
- uint32 real_chunk_size = 0;
-
- /* ======================== */
- /* init check */
- /* ======================== */
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump header ============> START\n",MOD);
- sec_signfmt_dump_buffer((uchar*)img_hdr,sizeof(SEC_IMG_HEADER_V4));
- SMSG(sec_info.bMsg,"[%s] Dump header ============> END\n",MOD);
-#endif
-
- if (SEC_IMG_MAGIC != img_hdr->magic_number)
- {
- SMSG(true,"[%s] magic number is invalid '0x%x'\n",MOD,img_hdr->magic_number);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- if (SEC_EXTENSION_MAGIC_V4 != img_hdr->ext_magic)
- {
- SMSG(true,"[%s] extension magic number is invalid '0x%x'\n",MOD,img_hdr->ext_magic);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- /* ======================== */
- /* search for extension header */
- /* ======================== */
- memset(&ext_set, 0x00, sizeof(SEC_IMG_EXTENSTION_SET));
- ext_hdr_offset = img_if->ext_offset + img_hdr->signature_length;
- ext_hdr_len = img_if->ext_len - img_hdr->signature_length;
- ext_hdr_buf = (uchar*)(ext_buf + ext_hdr_offset);
- if( SEC_OK != (ret = sec_signfmt_search_extension_v4(ext_hdr_buf, ext_hdr_len, &ext_set)) )
- {
- SMSG(true,"[%s] Image extension header not found\n",MOD);
- goto _ext_hdr_search_fail;
- }
- hash_size = get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_set.crypto->hash_type);
- sig_size = get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_set.crypto->sig_type);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> START\n",MOD);
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(sec_info.bMsg,"[%s] Dump EXT hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(ext_set.hash_only_64[i]->hash_data,hash_size);
- }
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* calculate each hash by chunk */
- /* ======================== */
- cal_hash_buf_len = hash_size*ext_set.frag->frag_count;
- cal_hash_buf = (uchar*)ASF_MALLOC(cal_hash_buf_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_cal_buf_fail;
- }
- memset(cal_hash_buf, 0x00, cal_hash_buf_len);
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] dump reset data\n",MOD);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr = cal_hash_buf;
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Total cal hash length is %d\n",MOD,cal_hash_buf_len);
-#endif
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- memset(tmp_ptr, 0x00, hash_size);
- if(ext_set.frag->chunk_size == 0)
- {
- real_chunk_size = ext_set.hash_only_64[i]->hash_len_64 & 0x00000000FFFFFFFFULL;
- }
- else
- {
- real_chunk_size = ext_set.frag->chunk_size;
- }
- if(sec_signfmt_gen_hash_by_chunk_64(ASF_FILE_NULL, part_name, ext_set.hash_only_64[i]->hash_offset_64, ext_set.hash_only_64[i]->hash_len_64,
- tmp_ptr, ext_set.hash_only_64[i]->sub_type, real_chunk_size)!=0)
- {
- ret = ERR_SIGN_FORMAT_CAL_HASH_BY_CHUNK_FAIL;
- goto _gen_hash_by_chunk_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after: [%d], offset is 0x%x\n",MOD,i,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr += hash_size;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after all done, offset is 0x%x\n",MOD,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
-
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> START\n",MOD);
- tmp_ptr = cal_hash_buf;
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(true,"[%s] Dump CAL hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(tmp_ptr,hash_size);
- tmp_ptr += hash_size;
- }
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* copy cal hash to extension header */
- /* ======================== */
- tmp_ptr = cal_hash_buf;
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- mcpy(ext_set.hash_only_64[i]->hash_data, tmp_ptr, hash_size);
- tmp_ptr += hash_size;
- }
-
- /* ======================== */
- /* compose final verify buffer */
- /* ======================== */
- verify_data_len = SEC_IMG_HEADER_SIZE+cal_hash_buf_len+ext_hdr_len;
- verify_data = (uchar*)ASF_MALLOC(verify_data_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_verify_buf_fail;
- }
- tmp_ptr = verify_data;
- /* copy header */
- mcpy(tmp_ptr,img_hdr,SEC_IMG_HEADER_SIZE);
- tmp_ptr += SEC_IMG_HEADER_SIZE;
- /* copy cal hash */
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- mcpy(tmp_ptr,cal_hash_buf+i*hash_size,hash_size);
- tmp_ptr += hash_size;
- }
- /* copy extension header */
- mcpy(tmp_ptr,ext_hdr_buf,ext_hdr_len);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump verify data (%d):\n",MOD,verify_data_len);
- sec_signfmt_dump_buffer(verify_data,verify_data_len);
-#endif
-
- /* ======================== */
- /* generate final hash */
- /* ======================== */
-
- /* hash */
- SMSG(sec_info.bMsg,"[%s] generate hash ... \n",MOD);
- if(SEC_OK != (ret = sec_hash(verify_data, verify_data_len, (uchar*)final_hash_buf, hash_len )))
- {
- SMSG(true,"[%s] generate hash fail\n\n",MOD);
- ret = ERR_SIGN_FORMAT_GENERATE_HASH_FAIL;
- goto _hash_fail;
- }
-
- /* ================== */
- /* dump hash data */
- /* ================== */
- SMSG(sec_info.bMsg,"[%s] dump hash data\n",MOD);
- dump_buf((uchar*)final_hash_buf,hash_len);
-
- SMSG(sec_info.bMsg,"[%s] generate hash pass\n\n",MOD);
-
-_hash_fail:
- ASF_FREE(verify_data);
-_malloc_verify_buf_fail:
-_gen_hash_by_chunk_fail:
- ASF_FREE(cal_hash_buf);
-_malloc_cal_buf_fail:
-_ext_hdr_search_fail:
-_magic_wrong_err:
-
- return ret;
-}
-
-/**************************************************************************
- * FUNCTIONS To Verify File
- **************************************************************************/
-int sec_signfmt_verify_file_v4(ASF_FILE fp, SEC_IMG_HEADER *file_img_hdr_p)
-{
- uint32 ret = SEC_OK;
- uint32 final_hash_sig_len = 0;
- uchar *final_hash_sig_buf = NULL;
- uint32 read_sz = 0;
- SEC_IMG_EXTENSTION_SET ext_set;
- u64 ext_hdr_offset = 0;
- uint32 ext_hdr_len = 0;
- uchar *ext_hdr_buf = NULL;
- u64 file_size = 0;
- uint32 hash_size = 0;
- uint32 sig_size = 0;
- uint32 i = 0;
- uchar *cal_hash_buf = NULL;
- uint32 cal_hash_buf_len = 0;
- uchar *tmp_ptr = NULL;
- uchar *verify_data = NULL;
- uint32 verify_data_len = 0;
- uint32 real_chunk_size = 0;
- SEC_IMG_HEADER_V4 *file_img_hdr = (SEC_IMG_HEADER_V4*)file_img_hdr_p;
- u64 img_signature_offset = 0;
-
- /* ======================== */
- /* init check */
- /* ======================== */
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump header ============> START\n",MOD);
- sec_signfmt_dump_buffer((uchar*)file_img_hdr,sizeof(SEC_IMG_HEADER_V4));
- SMSG(sec_info.bMsg,"[%s] Dump header ============> END\n",MOD);
-#endif
-
- if (SEC_IMG_MAGIC != file_img_hdr->magic_number)
- {
- SMSG(true,"[%s] magic number is invalid '0x%x'\n",MOD,file_img_hdr->magic_number);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- if (SEC_EXTENSION_MAGIC_V4 != file_img_hdr->ext_magic)
- {
- SMSG(true,"[%s] extension magic number is invalid '0x%x'\n",MOD,file_img_hdr->ext_magic);
- ret = ERR_SIGN_FORMAT_MAGIC_WRONG;
- goto _magic_wrong_err;
- }
-
- /* ======================== */
- /* locate final signature and hash */
- /* ======================== */
- final_hash_sig_len = file_img_hdr->signature_length;
- final_hash_sig_buf = (uchar*)ASF_MALLOC(final_hash_sig_len);
- if (NULL == final_hash_sig_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_hash_sig_fail;
- }
- img_signature_offset = sec_get_u64(file_img_hdr->image_length_high, file_img_hdr->image_length_low);
- img_signature_offset += file_img_hdr->image_offset;
- ASF_SEEK_SET(fp, img_signature_offset);
-
- if (final_hash_sig_len != (read_sz = ASF_READ(fp, final_hash_sig_buf, final_hash_sig_len)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,final_hash_sig_len);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_hash_sig_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump sign and hash value ============> START\n",MOD);
- sec_signfmt_dump_buffer(final_hash_sig_buf,final_hash_sig_len);
- SMSG(sec_info.bMsg,"[%s] Dump sign and hash value ============> END\n",MOD);
-#endif
-
- /* read file size */
- ASF_SEEK_END(fp, 0);
- file_size = ASF_FILE_POS(fp);
-
- /* ======================== */
- /* search for extension header */
- /* ======================== */
- memset(&ext_set, 0x00, sizeof(SEC_IMG_EXTENSTION_SET));
- ext_hdr_offset = sec_get_u64(file_img_hdr->image_length_high, file_img_hdr->image_length_low) + file_img_hdr->image_offset + file_img_hdr->signature_length;
- ext_hdr_len = (file_size - ext_hdr_offset) & 0xFFFFFFFF;
- ext_hdr_buf = (uchar*)ASF_MALLOC(ext_hdr_len);
- if (NULL == ext_hdr_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_ext_hdr_fail;
- }
- ASF_SEEK_SET(fp, ext_hdr_offset);
-
- if (ext_hdr_len != (read_sz = ASF_READ(fp, ext_hdr_buf, ext_hdr_len)))
- {
- SMSG(true,"[%s] read size '%d' != '%d'\n",MOD,read_sz,ext_hdr_len);
- ret = ERR_FS_READ_SIZE_FAIL;
- goto _read_ext_hdr_fail;
- }
- if( SEC_OK != (ret = sec_signfmt_search_extension_v4(ext_hdr_buf, ext_hdr_len, &ext_set)) )
- {
- SMSG(true,"[%s] Image extension header not found\n",MOD);
- goto _ext_hdr_search_fail;
- }
-
- hash_size = get_hash_size((SEC_CRYPTO_HASH_TYPE)ext_set.crypto->hash_type);
- sig_size = get_signature_size((SEC_CRYPTO_SIGNATURE_TYPE)ext_set.crypto->sig_type);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> START\n",MOD);
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(sec_info.bMsg,"[%s] Dump EXT hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(ext_set.hash_only_64[i]->hash_data,hash_size);
- }
- SMSG(sec_info.bMsg,"[%s] Dump ext hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* calculate each hash by chunk */
- /* ======================== */
- cal_hash_buf_len = hash_size*ext_set.frag->frag_count;
- cal_hash_buf = (uchar*)ASF_MALLOC(cal_hash_buf_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_cal_buf_fail;
- }
- memset(cal_hash_buf, 0x00, cal_hash_buf_len);
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] dump reset data\n",MOD);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr = cal_hash_buf;
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Total cal hash length is %d\n",MOD,cal_hash_buf_len);
-#endif
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- memset(tmp_ptr, 0x00, hash_size);
- if(ext_set.frag->chunk_size == 0)
- {
- real_chunk_size = ext_set.hash_only_64[i]->hash_len_64 & 0x00000000FFFFFFFFULL;
- }
- else
- {
- real_chunk_size = ext_set.frag->chunk_size;
- }
- if(sec_signfmt_gen_hash_by_chunk_64(fp, NULL, SEC_IMG_HEADER_SIZE+ext_set.hash_only_64[i]->hash_offset_64, ext_set.hash_only_64[i]->hash_len_64,
- tmp_ptr, ext_set.hash_only_64[i]->sub_type, real_chunk_size)!=0)
- {
- ret = ERR_SIGN_FORMAT_CAL_HASH_BY_CHUNK_FAIL;
- goto _gen_hash_by_chunk_fail;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after: [%d], offset is 0x%x\n",MOD,i,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
- tmp_ptr += hash_size;
- }
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash right after all done, offset is 0x%x\n",MOD,tmp_ptr);
- sec_signfmt_dump_buffer(cal_hash_buf,cal_hash_buf_len);
-#endif
-
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> START\n",MOD);
- tmp_ptr = cal_hash_buf;
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- SMSG(sec_info.bMsg,"[%s] Dump CAL hash [%d]\n",MOD,i);
- sec_signfmt_dump_buffer(tmp_ptr,hash_size);
- tmp_ptr += hash_size;
- }
- SMSG(sec_info.bMsg,"[%s] Dump cal hash value ============> END\n",MOD);
-#endif
-
- /* ======================== */
- /* compose final verify buffer */
- /* ======================== */
- verify_data_len = SEC_IMG_HEADER_SIZE+cal_hash_buf_len+ext_hdr_len;
- verify_data = (uchar*)ASF_MALLOC(verify_data_len);
- if (NULL == cal_hash_buf)
- {
- ret = ERR_FS_READ_BUF_ALLOCATE_FAIL;
- goto _malloc_verify_buf_fail;
- }
- tmp_ptr = verify_data;
- /* copy header */
- mcpy(tmp_ptr,file_img_hdr,SEC_IMG_HEADER_SIZE);
- tmp_ptr += SEC_IMG_HEADER_SIZE;
- /* copy cal hash */
- for(i=0;i<ext_set.frag->frag_count;i++)
- {
- mcpy(tmp_ptr,cal_hash_buf+i*hash_size,hash_size);
- tmp_ptr += hash_size;
- }
- /* copy extension header */
- mcpy(tmp_ptr,ext_hdr_buf,ext_hdr_len);
-
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump verify data (%d):\n",MOD,verify_data_len);
- sec_signfmt_dump_buffer(verify_data,verify_data_len);
-#endif
-#if DUMP_MORE_FOR_DEBUG
- SMSG(sec_info.bMsg,"[%s] Dump signature data (%d):\n",MOD,sig_size);
- sec_signfmt_dump_buffer(final_hash_sig_buf,sig_size);
-#endif
-
- osal_verify_lock();
-
- /* ======================== */
- /* verify buffer */
- /* ======================== */
- SMSG(sec_info.bMsg,"[%s] verify (lock)... \n",MOD);
- if(SEC_OK != (ret = sec_verify(verify_data, verify_data_len, final_hash_sig_buf, sig_size )))
- {
- osal_verify_unlock();
- SMSG(true,"[%s] verify fail (unlock), ret is %d\n\n",MOD,ret);
- goto _verify_fail;
- }
-
- osal_verify_unlock();
-
- SMSG(sec_info.bMsg,"[%s] verify pass (unlock)\n\n",MOD);
-
-_verify_fail:
- ASF_FREE(verify_data);
-_malloc_verify_buf_fail:
-_gen_hash_by_chunk_fail:
- ASF_FREE(cal_hash_buf);
-_malloc_cal_buf_fail:
-_ext_hdr_search_fail:
-_read_ext_hdr_fail:
- ASF_FREE(ext_hdr_buf);
-_malloc_ext_hdr_fail:
-_read_hash_sig_fail:
- ASF_FREE(final_hash_sig_buf);
-_malloc_hash_sig_fail:
-_magic_wrong_err:
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_usbdl.c b/drivers/misc/mediatek/masp/asf/core/sec_usbdl.c
deleted file mode 100644
index ff89aaa09..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_usbdl.c
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <mach/mt_sec_hal.h>
-#include "sec_typedef.h"
-#include "sec_rom_info.h"
-#include "sec_usbdl.h"
-#include "sec_log.h"
-
-/******************************************************************************
- * DEFINITIONS
- ******************************************************************************/
-#define MOD "ASF"
-
-/******************************************************************************
- * EXTERNAL VARIABLES
- **************************************************************************/
-extern AND_ROMINFO_T rom_info;
-
-/******************************************************************************
- * CHECK IF SECURE USBDL IS ENABLED
- ******************************************************************************/
-int sec_usbdl_enabled (void)
-{
- switch(rom_info.m_SEC_CTRL.m_sec_usb_dl)
- {
- case ATTR_SUSBDL_ENABLE:
- SMSG(bMsg,"[%s] SUSBDL is enabled\n",MOD);
- SMSG(bMsg,"0x%x, SD-FORCE\n",ATTR_SUSBDL_ENABLE);
- return 1;
-
- /* SUSBDL can't be disabled on security chip */
- case ATTR_SUSBDL_DISABLE:
- case ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP:
- SMSG(bMsg,"[%s] SUSBDL is only enabled on S-CHIP\n",MOD);
- if(TRUE == masp_hal_sbc_enabled())
- {
- SMSG(true,"0x%x, SD-SC\n",ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP);
- return 1;
- }
- else
- {
- SMSG(true,"0x%x, SD-NSC\n",ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP);
- return 0;
- }
- default:
- SMSG(true,"[%s] invalid susbdl config (SD-0x%x)\n",MOD,rom_info.m_SEC_CTRL.m_sec_usb_dl);
- SEC_ASSERT(0);
- return 1;
- }
-}
-
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_usif.c b/drivers/misc/mediatek/masp/asf/core/sec_usif.c
deleted file mode 100644
index 0d9b0d98c..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_usif.c
+++ /dev/null
@@ -1,114 +0,0 @@
-#include "sec_osal_light.h"
-
-#include "sec_boot_lib.h"
-#include "sec_boot.h"
-#include "sec_error.h"
-#include "sec_typedef.h"
-#include "sec_log.h"
-
-/**************************************************************************
- * MACRO
- **************************************************************************/
-#define MOD "ASF.USIF"
-
-/**************************************************************************
- * EXTERNAL VARIABLES
- *************************************************************************/
-extern SECURE_INFO sec_info;
-
-
-/**************************************************************************
- * FIND DEVICE PARTITION
- **************************************************************************/
-int sec_usif_check(void)
-{
- int ret = SEC_OK;
- ASF_FILE fd;
- const uint32 buf_len = 2048;
- char *buf = ASF_MALLOC(buf_len);
- char *pmtdbufp;
-
- uint32 rn = 0;
- ssize_t pm_sz;
- int cnt;
-
- ASF_GET_DS
-
- /* -------------------------- */
- /* open proc device */
- /* -------------------------- */
- SMSG(TRUE,"[%s] open /proc/dumchar_info\n",MOD);
- fd = ASF_OPEN("/proc/dumchar_info");
-
- if (ASF_FILE_ERROR(fd))
- {
- SMSG(TRUE,"[%s] open /proc/dumchar_info fail\n",MOD);
- goto _usif_dis;
- }
-
- buf[buf_len - 1] = '\0';
- pm_sz = ASF_READ(fd, buf, buf_len - 1);
- pmtdbufp = buf;
-
- /* -------------------------- */
- /* parsing proc device */
- /* -------------------------- */
- while (pm_sz > 0)
- {
- int m_num, m_sz, mtd_e_sz;
- char m_name[16];
- m_name[0] = '\0';
- m_num = -1;
-
- m_num ++;
-
- /* -------------------------- */
- /* parsing proc/dumchar_info */
- /* -------------------------- */
- cnt = sscanf(pmtdbufp, "%15s %x %x %x",m_name, &m_sz, &mtd_e_sz, &rn);
-
- if ((4 == cnt) && (2 == rn))
- {
- SMSG(TRUE,"[%s] RN = 2\n",MOD);
- goto _usif_en;
- }
- else if ((4 == cnt) && (1 == rn))
- {
- SMSG(TRUE,"[%s] RN = 1\n",MOD);
- goto _usif_dis;
- }
-
- while (pm_sz > 0 && *pmtdbufp != '\n')
- {
- pmtdbufp++;
- pm_sz--;
- }
-
- if (pm_sz > 0)
- {
- pmtdbufp++;
- pm_sz--;
- }
- }
-
- SMSG(TRUE,"[%s] usif RN not found\n",MOD);
- ret = ERR_USIF_PROC_RN_NOT_FOUND;
- goto _exit;
-
-_usif_en:
- SMSG(TRUE,"[%s] usif enabled\n",MOD);
- sec_info.bUsifEn = TRUE;
- goto _exit;
-
-_usif_dis:
- SMSG(TRUE,"[%s] usif disabled\n",MOD);
- sec_info.bUsifEn = FALSE;
-
-_exit:
- ASF_CLOSE(fd);
- ASF_FREE(buf);
- ASF_PUT_DS
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/core/sec_usif_util.c b/drivers/misc/mediatek/masp/asf/core/sec_usif_util.c
deleted file mode 100644
index 913324d0c..000000000
--- a/drivers/misc/mediatek/masp/asf/core/sec_usif_util.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/**************************************************************************
- * INCLUDE LIBRARY
- **************************************************************************/
-#include "sec_boot_lib.h"
-
-#define PART_PATH_PREFIX "/dev/"
-
-/**************************************************************************
- * EXTERNAL VARIABLES
- *************************************************************************/
-extern SECURE_INFO sec_info;
-
-/**************************************************************************
- * CHECK USIF ENABLED OR NOT
- **************************************************************************/
-bool sec_usif_enabled(void)
-{
- return sec_info.bUsifEn;
-}
-
-/**************************************************************************
- * RETURN PART NAME
- **************************************************************************/
-void sec_usif_part_name (uint32 part_num, char* part_name)
-{
- mcpy(part_name,pl2usif(mtd_part_map[part_num].name),strlen(pl2usif(mtd_part_map[part_num].name)));
-}
-
-/**************************************************************************
- * PART NUM TO PART PATH
- **************************************************************************/
-void sec_usif_part_path(uint32 part_num, char* part_path, uint32 part_path_len)
-{
- memset(part_path,0x0,part_path_len);
- mcpy(part_path,PART_PATH_PREFIX,strlen(PART_PATH_PREFIX));
- sec_usif_part_name(part_num,part_path+strlen(PART_PATH_PREFIX));
- SMSG(TRUE,"usif part path %s\n",part_path);
-
-}
-
-/**************************************************************************
- * PART NAME QUERY
- **************************************************************************/
-char* usif2pl (char* part_name)
-{
- /* ----------------- */
- /* seccfg */
- /* ----------------- */
- if(0 == mcmp(part_name,USIF_SECCFG,strlen(USIF_SECCFG)))
- {
- return (char*) PL_SECCFG;
- }
- /* ----------------- */
- /* uboot */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_UBOOT,strlen(USIF_UBOOT)))
- {
- return (char*) PL_UBOOT;
- }
- /* ----------------- */
- /* logo */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_LOGO,strlen(USIF_LOGO)))
- {
- return (char*) PL_LOGO;
- }
- /* ----------------- */
- /* boot image */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_BOOTIMG,strlen(USIF_BOOTIMG)))
- {
- return (char*) PL_BOOTIMG;
- }
- /* ----------------- */
- /* user data */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_USER,strlen(USIF_USER)))
- {
- return (char*) PL_USER;
- }
- /* ----------------- */
- /* system image */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_ANDSYSIMG,strlen(USIF_ANDSYSIMG)))
- {
- return (char*) PL_ANDSYSIMG;
- }
- /* ----------------- */
- /* recovery */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_RECOVERY,strlen(USIF_RECOVERY)))
- {
- return (char*) PL_RECOVERY;
- }
- /* ----------------- */
- /* sec ro */
- /* ----------------- */
- else if(0 == mcmp(part_name,USIF_SECRO,strlen(USIF_SECRO)))
- {
- return (char*) PL_SECRO;
- }
- /* ----------------- */
- /* not found */
- /* ----------------- */
- else
- {
- return part_name;
- }
-}
-
-char* pl2usif (char* part_name)
-{
- /* ----------------- */
- /* seccfg */
- /* ----------------- */
- if(0 == mcmp(part_name,PL_SECCFG,strlen(PL_SECCFG)))
- {
- return (char*) USIF_SECCFG;
- }
- /* ----------------- */
- /* uboot */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_UBOOT,strlen(PL_UBOOT)))
- {
- return (char*) USIF_UBOOT;
- }
- /* ----------------- */
- /* logo */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_LOGO,strlen(PL_LOGO)))
- {
- return (char*) USIF_LOGO;
- }
- /* ----------------- */
- /* boot image */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_BOOTIMG,strlen(PL_BOOTIMG)))
- {
- return (char*) USIF_BOOTIMG;
- }
- /* ----------------- */
- /* user data */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_USER,strlen(PL_USER)))
- {
- return (char*) USIF_USER;
- }
- /* ----------------- */
- /* system image */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_ANDSYSIMG,strlen(PL_ANDSYSIMG)))
- {
- return (char*) USIF_ANDSYSIMG;
- }
- /* ----------------- */
- /* recovery */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_RECOVERY,strlen(PL_RECOVERY)))
- {
- return (char*) USIF_RECOVERY;
- }
- /* ----------------- */
- /* sec ro */
- /* ----------------- */
- else if(0 == mcmp(part_name,PL_SECRO,strlen(PL_SECRO)))
- {
- return (char*) USIF_SECRO;
- }
- /* ----------------- */
- /* not found */
- /* ----------------- */
- else
- {
- return part_name;
- }
-}
diff --git a/drivers/misc/mediatek/masp/asf/crypto/bgn_core.c b/drivers/misc/mediatek/masp/asf/crypto/bgn_core.c
deleted file mode 100644
index 0ce32959b..000000000
--- a/drivers/misc/mediatek/masp/asf/crypto/bgn_core.c
+++ /dev/null
@@ -1,264 +0,0 @@
-#include "sec_osal_light.h"
-#include <mach/sec_osal.h>
-#include "sec_cust_struct.h"
-#include "bgn_internal.h"
-#include "bgn_asm.h"
-
-#define MOD "BGN"
-
-/**************************************************************************
- * DEBUG DEFINITION
- **************************************************************************/
-#define SMSG printk
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-/**************************************************************************
- * INIT/FREE FUNCTIONS
- **************************************************************************/
-
-void bgn_init( bgn *X )
-{
- X->s = 1;
- X->n = 0;
- X->p = NULL;
-}
-
-void bgn_free( bgn *X )
-{
- if( X->p != NULL )
- {
- memset( X->p, 0, X->n * ciL );
- osal_kfree( X->p );
-
- }
- X->s = 1;
- X->n = 0;
- X->p = NULL;
-
-}
-
-/**************************************************************************
- * CORE FUNCTION
- **************************************************************************/
-int bgn_exp_mod( bgn *X, const bgn *E, const bgn *N, bgn *P_RR )
-{
- ulong ei, mm, state;
- bgn RR, T, W[64];
- int ret, i, j, ws, wbits;
- int bs, nbl, nbi;
-
- if( bgn_cmp_int( N, 0 ) < 0 || ( N->p[0] & 1 ) == 0 )
- {
- return( E_BGN_BAD_INPUT_DATA );
- }
-
- montg_init( &mm, N );
-
- bgn_init( &RR );
- bgn_init( &T );
-
- memset( W, 0, sizeof( W ) );
-
- /* ws = 6. only accept E = 0x10001 */
- //ws = 6;
- i = bgn_msb( E );
- ws = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1;
-
-
- j = N->n + 1;
-
- /* ------------------------------------------ */
- /* bgn_grow : enlarge to the specified number */
- /* ------------------------------------------ */
- if(0 != (ret = bgn_grow( X, j )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_grow( &W[1], j )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_grow( &T, j * 2 )))
- {
- goto _exit;
- }
-
- /* --------------------- */
- /* P_RR = NULL */
- /* --------------------- */
- if(0 != (ret = bgn_lset( &RR, 1 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_shift_l( &RR, N->n * 2 * biL )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_mod_bgn( &RR, &RR, N )))
- {
- goto _exit;
- }
-
- if( P_RR != NULL )
- {
- memcpy( P_RR, &RR, sizeof( bgn ) );
- }
-
- /* --------------------- */
- /* compare signed values */
- /* --------------------- */
- if( bgn_cmp_num( X, N ) >= 0 )
- {
- bgn_mod_bgn( &W[1], X, N );
- }
- else
- {
- bgn_copy( &W[1], X );
- }
-
- /* --------------------- */
- /* A = A* B * R^-1 mod N */
- /* --------------------- */
- montg_mul( &W[1], &RR, N, mm, &T );
-
- if(0 != (ret = bgn_copy( X, &RR )))
- {
- goto _exit;
- }
-
- montg_red( X, N, mm, &T );
-
-
- /* --------------------- */
- /* ws > 1 */
- /* --------------------- */
- j = 1 << (ws - 1);
-
- if(0 != (ret = bgn_grow( &W[j], N->n + 1 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_copy( &W[j], &W[1] )))
- {
- goto _exit;
- }
-
- for( i = 0; i < ws - 1; i++ )
- {
- montg_mul( &W[j], &W[j], N, mm, &T );
- }
-
- for( i = j + 1; i < (1 << ws); i++ )
- {
- if(0 != (ret = bgn_grow( &W[i], N->n + 1 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_copy( &W[i], &W[i - 1] )))
- {
- goto _exit;
- }
-
- montg_mul( &W[i], &W[1], N, mm, &T );
- }
-
- nbl = E->n;
- bs = 0;
- nbi = 0;
- wbits = 0;
- state = 0;
-
- while( 1 )
- {
- if( bs == 0 )
- {
- if( nbl-- == 0 )
- {
- break;
- }
-
- bs = sizeof( ulong ) << 3;
- }
-
- bs--;
-
- ei = (E->p[nbl] >> bs) & 1;
-
- if( ei == 0 && state == 0 )
- {
- continue;
- }
-
- if( ei == 0 && state == 1 )
- {
- montg_mul( X, X, N, mm, &T );
- continue;
- }
-
- state = 2;
-
- nbi++;
- wbits |= (ei << (ws - nbi));
-
- if( nbi == ws )
- {
- for( i = 0; i < ws; i++ )
- {
- montg_mul( X, X, N, mm, &T );
- }
-
- montg_mul( X, &W[wbits], N, mm, &T );
-
- state--;
- nbi = 0;
- wbits = 0;
- }
- }
-
- for( i = 0; i < nbi; i++ )
- {
- montg_mul( X, X, N, mm, &T );
-
- wbits <<= 1;
-
- if( (wbits & (1 << ws)) != 0 )
- {
- montg_mul( X, &W[1], N, mm, &T );
- }
- }
-
- montg_red( X, N, mm, &T );
-
-_exit:
-
- for( i = (1 << (ws - 1)); i < (1 << ws); i++ )
- {
- bgn_free( &W[i] );
- }
-
- if( P_RR != NULL )
- {
- bgn_free( &W[1] );
- bgn_free( &T );
- }
- else
- {
- bgn_free( &W[1] );
- bgn_free( &T );
- bgn_free( &RR );
- }
-
- return ret;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/crypto/bgn_io.c b/drivers/misc/mediatek/masp/asf/crypto/bgn_io.c
deleted file mode 100644
index 9f997e57d..000000000
--- a/drivers/misc/mediatek/masp/asf/crypto/bgn_io.c
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "sec_osal_light.h"
-#include "sec_cust_struct.h"
-#include "bgn_internal.h"
-#include "bgn_asm.h"
-
-#define MOD "BGN"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-
-/**************************************************************************
- * INTERNAL DEFINITION
- **************************************************************************/
-#define ASCII_MASK 255
-#define ASCII_0 0x30
-#define ASCII_7 0x37
-#define ASCII_9 0x39
-#define ASCII_A 0x41
-#define ASCII_F 0x46
-#define ASCII_W 0x57
-#define ASCII_a 0x61
-#define ASCII_f 0x66
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-static int bgn_get_digit( ulong *d, int radix, char c )
-{
- *d = ASCII_MASK;
-
- if( c >= ASCII_0 && c <= ASCII_9 )
- {
- *d = c - ASCII_0;
- }
-
- if( c >= ASCII_A && c <= ASCII_F )
- {
- *d = c - ASCII_7;
- }
-
- if( c >= ASCII_a && c <= ASCII_f )
- {
- *d = c - ASCII_W;
- }
-
- if( *d >= (ulong) radix )
- {
- return E_BGN_INVALID_CHARACTER;
- }
-
- return 0;
-}
-
-int bgn_read_str( bgn *X, int radix, const char *s, int length )
-{
- int ret, i, j, n, slen;
- ulong d;
- bgn T;
-
-
- if( radix < 2 || radix > 16 )
- {
- return( E_BGN_BAD_INPUT_DATA );
- }
-
- bgn_init( &T );
- slen = length;
-
- if( radix == 16 )
- {
- n = B_T_L( slen << 2 );
-
- if(0 != (ret = bgn_grow( X, n )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_lset( X, 0 )))
- {
- goto _exit;
- }
-
- for( i = slen - 1, j = 0; i >= 0; i--, j++ )
- {
- if( i == 0 && s[i] == '-' )
- {
- X->s = -1;
- break;
- }
-
- if(0 != (ret = bgn_get_digit( &d, radix, s[i] )))
- {
- goto _exit;
- }
-
- X->p[j / (2 * ciL)] |= d << ( (j % (2 * ciL)) << 2 );
- }
- }
- else
- {
- if(0 != (ret = bgn_lset( X, 0 )))
- {
- goto _exit;
- }
-
- for( i = 0; i < slen; i++ )
- {
- if( i == 0 && s[i] == '-' )
- {
- X->s = -1;
- continue;
- }
-
- if(0 != (ret = bgn_get_digit( &d, radix, s[i] )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_mul_int( &T, X, radix )))
- {
- goto _exit;
- }
-
- if( X->s == 1 )
- {
- if(0 != (ret = bgn_add_int( X, &T, d )))
- {
- goto _exit;
- }
- }
- else
- {
- if(0 != (ret = bgn_sub_int( X, &T, d )))
- {
- goto _exit;
- }
- }
- }
- }
-
-_exit:
-
- bgn_free( &T );
-
- return ret;
-}
-
-int bgn_read_bin( bgn *X, const uchar *buf, int len )
-{
- int ret, i, j, n;
-
- for( n = 0; n < len; n++ )
- {
- if( buf[n] != 0 )
- {
- break;
- }
- }
-
- if(0 != (ret = bgn_grow( X, C_T_L( len - n ))))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_lset( X, 0 )))
- {
- goto _exit;
- }
-
- for( i = len - 1, j = 0; i >= n; i--, j++ )
- {
- X->p[j / ciL] |= ((ulong) buf[i]) << ((j % ciL) << 3);
- }
-
-_exit:
-
- return ret;
-}
-
-int bgn_write_bin( const bgn *X, uchar *buf, int len )
-{
- int i, j, n;
-
- n = bgn_size( X );
-
- if( len < n )
- {
- return( E_BGN_BUFFER_TOO_SMALL );
- }
-
- memset( buf, 0, len );
-
- for( i = len - 1, j = 0; n > 0; i--, j++, n-- )
- {
- buf[i] = (uchar)( X->p[j/ciL] >> ((j%ciL) << 3) );
- }
-
- return 0;
-}
diff --git a/drivers/misc/mediatek/masp/asf/crypto/bgn_util.c b/drivers/misc/mediatek/masp/asf/crypto/bgn_util.c
deleted file mode 100644
index 319cec8f2..000000000
--- a/drivers/misc/mediatek/masp/asf/crypto/bgn_util.c
+++ /dev/null
@@ -1,1004 +0,0 @@
-#include "sec_osal_light.h"
-#include <mach/sec_osal.h>
-#include "sec_cust_struct.h"
-#include "bgn_internal.h"
-#include "bgn_asm.h"
-
-#define MOD "BGN"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-int bgn_grow( bgn *P_X, int nbl )
-{
- ulong *p;
-
- if( P_X->n < nbl )
- {
- if( ( p = (ulong *) osal_kmalloc( nbl * ciL ) ) == NULL )
- {
- return 1;
- }
-
- memset( p, 0, nbl * ciL );
-
- if( P_X->p != NULL )
- {
- memcpy( p, P_X->p, P_X->n * ciL );
- memset( P_X->p, 0, P_X->n * ciL );
- osal_kfree( P_X->p );
- }
-
- P_X->n = nbl;
- P_X->p = p;
- }
-
- return 0;
-}
-
-int bgn_copy( bgn *P_X, const bgn *Y )
-{
- int ret, i;
-
- if( P_X == Y )
- {
- return( 0 );
- }
-
- for( i = Y->n - 1; i > 0; i-- )
- if( Y->p[i] != 0 )
- break;
- i++;
-
- P_X->s = Y->s;
-
- if(0 != (ret = bgn_grow( P_X, i )))
- {
- goto _exit;
- }
-
- memset( P_X->p, 0, P_X->n * ciL );
- memcpy( P_X->p, Y->p, i * ciL );
-
-_exit:
-
- return( ret );
-}
-
-void bgn_swap( bgn *P_X, bgn *Y )
-{
- bgn T;
-
- memcpy( &T, P_X, sizeof( bgn ) );
- memcpy( P_X, Y, sizeof( bgn ) );
- memcpy( Y, &T, sizeof( bgn ) );
-}
-
-int bgn_lset( bgn *P_X, int z )
-{
- int ret;
-
- if(0 != (ret = bgn_grow( P_X, 1 )))
- {
- goto _exit;
- }
-
- memset( P_X->p, 0, P_X->n * ciL );
-
- P_X->p[0] = ( z < 0 ) ? -z : z;
- P_X->s = ( z < 0 ) ? -1 : 1;
-
-_exit:
-
- return( ret );
-}
-
-int bgn_lsb( const bgn *P_X )
-{
- int i, j, count = 0;
-
- for( i = 0; i < P_X->n; i++ )
- for( j = 0; j < (int) biL; j++, count++ )
- if( ( ( P_X->p[i] >> j ) & 1 ) != 0 )
- return( count );
-
- return( 0 );
-}
-
-int bgn_msb( const bgn *P_X )
-{
- int i, j;
-
- for( i = P_X->n - 1; i > 0; i-- )
- if( P_X->p[i] != 0 )
- break;
-
- for( j = biL - 1; j >= 0; j-- )
- if( ( ( P_X->p[i] >> j ) & 1 ) != 0 )
- break;
-
- return( ( i * biL ) + j + 1 );
-}
-
-int bgn_size( const bgn *P_X )
-{
- return( ( bgn_msb( P_X ) + 7 ) >> 3 );
-}
-
-int bgn_shift_l( bgn *P_X, int count )
-{
- int ret, i, v0, t1;
- ulong r0 = 0, r1;
-
- v0 = count / (biL );
- t1 = count & (biL - 1);
-
- i = bgn_msb( P_X ) + count;
-
- if( P_X->n * (int) biL < i )
- {
- if(0 != (ret = bgn_grow( P_X, B_T_L( i ))))
- {
- goto _exit;
- }
- }
-
- ret = 0;
-
- if( v0 > 0 )
- {
- for( i = P_X->n - 1; i >= v0; i-- )
- {
- P_X->p[i] = P_X->p[i - v0];
- }
-
- for( ; i >= 0; i-- )
- {
- P_X->p[i] = 0;
- }
- }
-
- if( t1 > 0 )
- {
- for( i = v0; i < P_X->n; i++ )
- {
- r1 = P_X->p[i] >> (biL - t1);
- P_X->p[i] <<= t1;
- P_X->p[i] |= r0;
- r0 = r1;
- }
- }
-
-_exit:
-
- return ret;
-}
-
-int bgn_shift_r( bgn *P_X, int count )
-{
- int i, v0, v1;
- ulong r0 = 0, r1;
-
- v0 = count / biL;
- v1 = count & (biL - 1);
-
- if( v0 > 0 )
- {
- for( i = 0; i < P_X->n - v0; i++ )
- {
- P_X->p[i] = P_X->p[i + v0];
- }
-
- for( ; i < P_X->n; i++ )
- {
- P_X->p[i] = 0;
- }
- }
-
- if( v1 > 0 )
- {
- for( i = P_X->n - 1; i >= 0; i-- )
- {
- r1 = P_X->p[i] << (biL - v1);
- P_X->p[i] >>= v1;
- P_X->p[i] |= r0;
- r0 = r1;
- }
- }
-
- return 0;
-}
-
-int bgn_cmp_abs( const bgn *P_X, const bgn *Y )
-{
- int i, j;
-
- for( i = P_X->n - 1; i >= 0; i-- )
- {
- if( P_X->p[i] != 0 )
- break;
- }
-
- for( j = Y->n - 1; j >= 0; j-- )
- {
- if( Y->p[j] != 0 )
- break;
- }
-
- if( i < 0 && j < 0 )
- {
- return( 0 );
- }
-
- if( i > j )
- {
- return( 1 );
- }
-
- if( j > i )
- {
- return( -1 );
- }
-
- for( ; i >= 0; i-- )
- {
- if( P_X->p[i] > Y->p[i] )
- {
- return( 1 );
- }
-
- if( P_X->p[i] < Y->p[i] )
- {
- return( -1 );
- }
- }
-
- return( 0 );
-}
-
-int bgn_cmp_num( const bgn *P_X, const bgn *Y )
-{
- int i, j;
-
- for( i = P_X->n - 1; i >= 0; i-- )
- {
- if( P_X->p[i] != 0 )
- break;
- }
-
- for( j = Y->n - 1; j >= 0; j-- )
- {
- if( Y->p[j] != 0 )
- break;
- }
-
- if( i < 0 && j < 0 )
- {
- return( 0 );
- }
-
- if( i > j ) return( P_X->s );
- if( j > i ) return( -P_X->s );
-
- if( P_X->s > 0 && Y->s < 0 ) return( 1 );
- if( Y->s > 0 && P_X->s < 0 ) return( -1 );
-
- for( ; i >= 0; i-- )
- {
- if( P_X->p[i] > Y->p[i] ) return( P_X->s );
- if( P_X->p[i] < Y->p[i] ) return( -P_X->s );
- }
-
- return( 0 );
-}
-
-int bgn_cmp_int( const bgn *P_X, int z )
-{
- bgn Y;
- ulong p[1];
-
- *p = ( z < 0 ) ? -z : z;
- Y.s = ( z < 0 ) ? -1 : 1;
- Y.n = 1;
- Y.p = p;
-
- return( bgn_cmp_num( P_X, &Y ) );
-}
-
-int bgn_add_abs( bgn *P_X, const bgn *P_A, const bgn *P_B )
-{
- int ret, i, j;
- ulong *o, *p, c;
-
- if( P_X == P_B )
- {
- const bgn *T = P_A; P_A = P_X; P_B = T;
- }
-
- if( P_X != P_A )
- {
- if(0 != (ret = bgn_copy( P_X, P_A )))
- {
- goto _exit;
- }
- }
-
- P_X->s = 1;
-
- for( j = P_B->n - 1; j >= 0; j-- )
- {
- if( P_B->p[j] != 0 )
- break;
- }
-
- if(0 != (ret = bgn_grow( P_X, j + 1 )))
- {
- goto _exit;
- }
-
- o = P_B->p; p = P_X->p; c = 0;
-
- for( i = 0; i <= j; i++, o++, p++ )
- {
- *p += c; c = ( *p < c );
- *p += *o; c += ( *p < *o );
- }
-
- while( c != 0 )
- {
- if( i >= P_X->n )
- {
- if(0 != (ret = bgn_grow( P_X, i + 1 )))
- {
- goto _exit;
- }
-
- p = P_X->p + i;
- }
-
- *p += c; c = ( *p < c ); i++;
- }
-
-_exit:
-
- return ret;
-}
-
-void bgn_sub_hlp( int n, ulong *s, ulong *d )
-{
- int i;
- ulong c, z;
-
- for( i = c = 0; i < n; i++, s++, d++ )
- {
- z = ( *d < c ); *d -= c;
- c = ( *d < *s ) + z; *d -= *s;
- }
-
- while( c != 0 )
- {
- z = ( *d < c ); *d -= c;
- c = z; i++; d++;
- }
-}
-
-int bgn_sub_abs( bgn *P_X, const bgn *P_A, const bgn *P_B )
-{
- bgn TB;
- int ret, n;
-
- if( bgn_cmp_abs( P_A, P_B ) < 0 )
- {
- return( E_BGN_NEGATIVE_VALUE );
- }
-
- bgn_init( &TB );
-
- if( P_X == P_B )
- {
- if(0 != (ret = bgn_copy( &TB, P_B )))
- {
- goto _exit;
- }
- P_B = &TB;
- }
-
- if( P_X != P_A )
- {
- if(0 != (ret = bgn_copy( P_X, P_A )))
- {
- goto _exit;
- }
- }
-
- P_X->s = 1;
-
- ret = 0;
-
- for( n = P_B->n - 1; n >= 0; n-- )
- {
- if( P_B->p[n] != 0 )
- break;
- }
-
- bgn_sub_hlp( n + 1, P_B->p, P_X->p );
-
-_exit:
-
- bgn_free( &TB );
-
- return( ret );
-}
-
-int bgn_add_bgn( bgn *P_X, const bgn *P_A, const bgn *P_B )
-{
- int ret, s = P_A->s;
-
- if( P_A->s * P_B->s < 0 )
- {
- if( bgn_cmp_abs( P_A, P_B ) >= 0 )
- {
- if(0 != (ret = bgn_sub_abs( P_X, P_A, P_B )))
- {
- goto _exit;
- }
-
- P_X->s = s;
- }
- else
- {
- if(0 != (ret = bgn_sub_abs( P_X, P_B, P_A )))
- {
- goto _exit;
- }
-
- P_X->s = -s;
- }
- }
- else
- {
- if(0 != (ret = bgn_add_abs( P_X, P_A, P_B )))
- {
- goto _exit;
- }
- P_X->s = s;
- }
-
-_exit:
-
- return( ret );
-}
-
-int bgn_sub_bgn( bgn *P_X, const bgn *P_A, const bgn *P_B )
-{
- int ret, s = P_A->s;
-
- if( P_A->s * P_B->s > 0 )
- {
- if( bgn_cmp_abs( P_A, P_B ) >= 0 )
- {
- if(0 != (ret = bgn_sub_abs( P_X, P_A, P_B )))
- {
- goto _exit;
- }
-
- P_X->s = s;
- }
- else
- {
- if(0 != (ret = bgn_sub_abs( P_X, P_B, P_A )))
- {
- goto _exit;
- }
-
- P_X->s = -s;
- }
- }
- else
- {
- if(0 != (ret = bgn_add_abs( P_X, P_A, P_B )))
- {
- goto _exit;
- }
-
- P_X->s = s;
- }
-
-_exit:
-
- return( ret );
-}
-
-int bgn_add_int( bgn *P_X, const bgn *P_A, int b )
-{
- bgn _B;
- ulong p[1];
-
- p[0] = ( b < 0 ) ? -b : b;
- _B.s = ( b < 0 ) ? -1 : 1;
- _B.n = 1;
- _B.p = p;
-
- return( bgn_add_bgn( P_X, P_A, &_B ) );
-}
-
-int bgn_sub_int( bgn *P_X, const bgn *P_A, int b )
-{
- bgn _B;
- ulong p[1];
-
- p[0] = ( b < 0 ) ? -b : b;
- _B.s = ( b < 0 ) ? -1 : 1;
- _B.n = 1;
- _B.p = p;
-
- return( bgn_sub_bgn( P_X, P_A, &_B ) );
-}
-
-void bgn_mul_hlp( int i, ulong *s, ulong *d, ulong b )
-{
- ulong c = 0, t = 0;
-
- for( ; i >= 16; i -= 16 )
- {
- ALU_INIT
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
-
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
- ALU_STOP
- }
-
- for( ; i >= 8; i -= 8 )
- {
- ALU_INIT
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
-
- ALU_CORE ALU_CORE
- ALU_CORE ALU_CORE
- ALU_STOP
- }
-
- for( ; i > 0; i-- )
- {
- ALU_INIT
- ALU_CORE
- ALU_STOP
- }
-
- t++;
-
- do {
- *d += c; c = ( *d < c ); d++;
- }
- while( c != 0 );
-}
-
-int bgn_mul_bgn( bgn *P_X, const bgn *P_A, const bgn *P_B )
-{
- int ret, i, j;
- bgn TA, TB;
-
- bgn_init( &TA );
- bgn_init( &TB );
-
- if( P_X == P_A )
- {
- if(0 != (ret = bgn_copy( &TA, P_A )))
- {
- goto _exit;
- }
-
- P_A = &TA;
- }
-
- if( P_X == P_B )
- {
- if(0 != (ret = bgn_copy( &TB, P_B )))
- {
- goto _exit;
- }
-
- P_B = &TB;
- }
-
- for( i = P_A->n - 1; i >= 0; i-- )
- {
- if( P_A->p[i] != 0 )
- break;
- }
-
- for( j = P_B->n - 1; j >= 0; j-- )
- {
- if( P_B->p[j] != 0 )
- break;
- }
-
- if(0 != (ret = bgn_grow( P_X, i + j + 2 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_lset( P_X, 0 )))
- {
- goto _exit;
- }
-
- for( i++; j >= 0; j-- )
- {
- bgn_mul_hlp( i, P_A->p, P_X->p + j, P_B->p[j] );
- }
-
- P_X->s = P_A->s * P_B->s;
-
-_exit:
-
- bgn_free( &TB );
- bgn_free( &TA );
-
- return( ret );
-}
-
-int bgn_mul_int( bgn *P_X, const bgn *P_A, ulong b )
-{
- bgn _B;
- ulong p[1];
-
- _B.s = 1;
- _B.n = 1;
- _B.p = p;
- p[0] = b;
-
- return( bgn_mul_bgn( P_X, P_A, &_B ) );
-}
-
-int bgn_div_bgn( bgn *P_Q, bgn *P_R, const bgn *P_A, const bgn *P_B )
-{
- int ret, i, n, t, k;
- bgn X, Y, Z, T1, T2;
-
- if( bgn_cmp_int( P_B, 0 ) == 0 )
- {
- return( E_BGN_DIVISION_BY_ZERO );
- }
-
- bgn_init( &X );
- bgn_init( &Y );
- bgn_init( &Z );
- bgn_init( &T1 );
- bgn_init( &T2 );
-
- if( bgn_cmp_abs( P_A, P_B ) < 0 )
- {
- if( P_Q != NULL )
- {
- if(0 != (ret = bgn_lset( P_Q, 0 )))
- {
- goto _exit;
- }
- }
-
- if( P_R != NULL )
- {
- if(0 != (ret = bgn_copy( P_R, P_A )))
- {
- goto _exit;
- }
- }
-
- return( 0 );
- }
-
- if(0 != (ret = bgn_copy( &X, P_A )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_copy( &Y, P_B )))
- {
- goto _exit;
- }
-
- X.s = Y.s = 1;
-
- if(0 != (ret = bgn_grow( &Z, P_A->n + 2 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_lset( &Z, 0 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_grow( &T1, 2 )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_grow( &T2, 3 )))
- {
- goto _exit;
- }
-
- k = bgn_msb( &Y ) % biL;
-
- if( k < (int) biL - 1 )
- {
- k = biL - 1 - k;
-
- if(0 != (ret = bgn_shift_l( &X, k )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_shift_l( &Y, k )))
- {
- goto _exit;
- }
- }
- else
- {
- k = 0;
- }
-
- n = X.n - 1;
- t = Y.n - 1;
- bgn_shift_l( &Y, biL * (n - t) );
-
- while( bgn_cmp_num( &X, &Y ) >= 0 )
- {
- Z.p[n - t]++;
- bgn_sub_bgn( &X, &X, &Y );
- }
-
- bgn_shift_r( &Y, biL * (n - t) );
-
- for( i = n; i > t ; i-- )
- {
- if( X.p[i] >= Y.p[t] )
- {
- Z.p[i - t - 1] = ~0;
- }
- else
- {
- ulong q0, q1, r0, r1;
- ulong d0, d1, d, m;
-
- d = Y.p[t];
- d0 = ( d << biH ) >> biH;
- d1 = ( d >> biH );
-
- q1 = X.p[i] / d1;
- r1 = X.p[i] - d1 * q1;
- r1 <<= biH;
- r1 |= ( X.p[i - 1] >> biH );
-
- m = q1 * d0;
- if( r1 < m )
- {
- q1--, r1 += d;
- while( r1 >= d && r1 < m )
- q1--, r1 += d;
- }
- r1 -= m;
-
- q0 = r1 / d1;
- r0 = r1 - d1 * q0;
- r0 <<= biH;
- r0 |= ( X.p[i - 1] << biH ) >> biH;
-
- m = q0 * d0;
- if( r0 < m )
- {
- q0--, r0 += d;
- while( r0 >= d && r0 < m )
- q0--, r0 += d;
- }
- r0 -= m;
-
- Z.p[i - t - 1] = ( q1 << biH ) | q0;
- }
-
- Z.p[i - t - 1]++;
-
- do
- {
- Z.p[i - t - 1]--;
-
- if(0 != (ret = bgn_lset( &T1, 0 )))
- {
- goto _exit;
- }
-
- T1.p[0] = (t < 1) ? 0 : Y.p[t - 1];
- T1.p[1] = Y.p[t];
-
- if(0 != (ret = bgn_mul_int( &T1, &T1, Z.p[i - t - 1] )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_lset( &T2, 0 )))
- {
- goto _exit;
- }
-
- T2.p[0] = (i < 2) ? 0 : X.p[i - 2];
- T2.p[1] = (i < 1) ? 0 : X.p[i - 1];
- T2.p[2] = X.p[i];
- } while( bgn_cmp_num( &T1, &T2 ) > 0 );
-
- if(0 != (ret = bgn_mul_int( &T1, &Y, Z.p[i - t - 1] )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_shift_l( &T1, biL * (i - t - 1) )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_sub_bgn( &X, &X, &T1 )))
- {
- goto _exit;
- }
-
- if( bgn_cmp_int( &X, 0 ) < 0 )
- {
- if(0 != (ret = bgn_copy( &T1, &Y )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_shift_l( &T1, biL * (i - t - 1) )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_add_bgn( &X, &X, &T1 )))
- {
- goto _exit;
- }
-
- Z.p[i - t - 1]--;
- }
- }
-
- if( P_Q != NULL )
- {
- bgn_copy( P_Q, &Z );
- P_Q->s = P_A->s * P_B->s;
- }
-
- if( P_R != NULL )
- {
- bgn_shift_r( &X, k );
- bgn_copy( P_R, &X );
-
- P_R->s = P_A->s;
-
- if( bgn_cmp_int( P_R, 0 ) == 0 )
- {
- P_R->s = 1;
- }
- }
-
-_exit:
-
- bgn_free( &X );
- bgn_free( &Y );
- bgn_free( &Z );
- bgn_free( &T1 );
- bgn_free( &T2 );
-
- return( ret );
-}
-
-int bgn_div_int( bgn *P_Q, bgn *P_R, const bgn *P_A, int b )
-{
- bgn _B;
- ulong p[1];
-
- p[0] = ( b < 0 ) ? -b : b;
- _B.s = ( b < 0 ) ? -1 : 1;
- _B.n = 1;
- _B.p = p;
-
- return( bgn_div_bgn( P_Q, P_R, P_A, &_B ) );
-}
-
-int bgn_mod_bgn( bgn *P_R, const bgn *P_A, const bgn *P_B )
-{
- int ret;
-
- if( bgn_cmp_int( P_B, 0 ) < 0 )
- {
- return E_BGN_NEGATIVE_VALUE;
- }
-
- if(0 != (ret = bgn_div_bgn( NULL, P_R, P_A, P_B )))
- {
- goto _exit;
- }
-
- while( bgn_cmp_int( P_R, 0 ) < 0 )
- {
- if(0 != (ret = bgn_add_bgn( P_R, P_R, P_B )))
- {
- goto _exit;
- }
- }
-
- while( bgn_cmp_num( P_R, P_B ) >= 0 )
- {
- if(0 != (ret = bgn_sub_bgn( P_R, P_R, P_B )))
- {
- goto _exit;
- }
- }
-
-_exit:
-
- return( ret );
-}
-
-int bgn_mod_int( ulong *r, const bgn *P_A, int b )
-{
- int i;
- ulong x, y, z;
-
- if( b == 0 )
- {
- return( E_BGN_DIVISION_BY_ZERO );
- }
-
- if( b < 0 )
- {
- return E_BGN_NEGATIVE_VALUE;
- }
-
- if( b == 1 )
- {
- *r = 0;
- return( 0 );
- }
-
- if( b == 2 )
- {
- *r = P_A->p[0] & 1;
- return( 0 );
- }
-
- for( i = P_A->n - 1, y = 0; i >= 0; i-- )
- {
- x = P_A->p[i];
- y = ( y << biH ) | ( x >> biH );
- z = y / b;
- y -= z * b;
-
- x <<= biH;
- y = ( y << biH ) | ( x >> biH );
- z = y / b;
- y -= z * b;
- }
-
- if( P_A->s < 0 && y != 0 )
- y = b - y;
-
- *r = y;
-
- return( 0 );
-}
diff --git a/drivers/misc/mediatek/masp/asf/crypto/rsa_core.c b/drivers/misc/mediatek/masp/asf/crypto/rsa_core.c
deleted file mode 100644
index f4741a750..000000000
--- a/drivers/misc/mediatek/masp/asf/crypto/rsa_core.c
+++ /dev/null
@@ -1,326 +0,0 @@
-#include "sec_osal_light.h"
-#include <mach/sec_osal.h>
-#include "sec_cust_struct.h"
-#include "rsa_def.h"
-#include "bgn_internal.h"
-
-#define MOD "RSA"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-
-/**************************************************************************
-* EXTERNAL VARIABLE
-**************************************************************************/
-extern uchar sha1sum[];
-
-/**************************************************************************
-* GLOBAL VARIABLES
-**************************************************************************/
-rsa_ctx rsa;
-uchar rsa_ci[RSA_KEY_LEN];
-static unsigned char *rsa_buf = NULL;
-
-/**************************************************************************
- * RSA DEBUG FLAG
- **************************************************************************/
-#define RSA_DEBUG_LOG (0)
-
-
-/**************************************************************************
- * DEBUG DEFINITION
- **************************************************************************/
-#if RSA_DEBUG_LOG
-#define RSA_LOG printf
-#else
-#define RSA_LOG
-#endif
-
-
-/**************************************************************************
- * INTERNAL DEFINIITION
- **************************************************************************/
-#define MASK 0xFF
-#define RSA_BUF_SIZE 1024
-
-
-/**************************************************************************
- * INTERNAL FUNCTIONS
- **************************************************************************/
-void rsa_init( rsa_ctx *ctx, int pad, int h_id, int (*f_rng)(void *), void *p_rng );
-int rsa_pub( rsa_ctx *ctx, const uchar *ip, uchar *op );
-int rsa_pri( rsa_ctx *ctx, const uchar *ip, uchar *op );
-void rsa_free( rsa_ctx *ctx );
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-void rsa_init( rsa_ctx *ctx, int pad, int h_id, int (*f_rng)(void *), void *p_rng )
-{
- memset( ctx, 0, sizeof( rsa_ctx ) );
-
- ctx->pad = pad;
- ctx->h_id = h_id;
-
- ctx->f_rng = f_rng;
- ctx->p_rng = p_rng;
-}
-
-int rsa_pub( rsa_ctx *ctx, const uchar *ip, uchar *op )
-{
- int ret = 0, olen = 0;
- bgn B;
-
- bgn_init( &B );
-
- /* if no RSA pad, input data won't be extended to key length */
- if(0 != (ret = bgn_read_bin( &B, ip, RSA_KEY_LEN )))
- {
- goto _exit;
- }
-
- if( bgn_cmp_num( &B, &ctx->N ) >= 0 )
- {
- bgn_free( &B );
- ret = E_RSA_BAD_INPUT_DATA;
- goto _err;
- }
-
- olen = ctx->len;
-
- /* ============================================================ */
- /* Following is the formula of RSA public key crypto algorithm */
- /* */
- /* => public key use ctx->E (public exponent) */
- /* */
- /* => Message = Cipher ^ (&ctx->E) mod (&ctx->N) */
- /* */
- /* ============================================================ */
- if(0 != (ret = bgn_exp_mod( &B, &ctx->E, &ctx->N, &ctx->RN )))
- {
- goto _exit;
- }
-
- if(0 != (ret = bgn_write_bin( &B, op, olen )))
- {
- goto _exit;
- }
-
-_exit:
-
- bgn_free( &B );
-
- if( 0 != ret )
- {
- //RSA_LOG("[%s] E_RSA_PUBLIC_FAILED\n",MOD);
- ret = E_RSA_PUBLIC_FAILED;
- goto _err;
- }
-
- return 0;
-
-_err:
-
- return ret;
-}
-
-int rsa_pri( rsa_ctx *ctx, const uchar *ip, uchar *op )
-{
- int ret = 0, olen = 0;
- bgn B, B1, B2;
-
- bgn_init( &B );
- bgn_init( &B1 );
- bgn_init( &B2 );
-
- if(0 != (ret = bgn_read_bin( &B, ip, ctx->len )))
- {
- goto _exit;
- }
-
- if( bgn_cmp_num( &B, &ctx->N ) >= 0 )
- {
- bgn_free( &B );
- ret = E_RSA_BAD_INPUT_DATA;
- goto _err;
- }
-
- /* ============================================================ */
- /* Following is the formula of RSA private key crypto algorithm */
- /* */
- /* => private key use ctx->D (private exponent) */
- /* */
- /* => M' = M ^ (&ctx->D) mod (&ctx->N) */
- /* */
- /* ============================================================ */
- if(0 != (ret = bgn_exp_mod( &B, &ctx->D, &ctx->N, &ctx->RN )))
- {
- goto _exit;
- }
-
- olen = ctx->len;
-
- if(0 != (ret = bgn_write_bin( &B, op, olen )))
- {
- goto _exit;
- }
-
-_exit:
-
- bgn_free( &B );
- bgn_free( &B1 );
- bgn_free( &B2 );
-
- if( ret != 0 )
- {
- //RSA_LOG("[%s] E_RSA_PRIVATE_FAILED\n",MOD);
- ret = E_RSA_PRIVATE_FAILED;
- goto _err;
-
- }
-
- return 0;
-
-_err:
-
- return ret;
-}
-
-int rsa_sign( rsa_ctx *ctx, int h_len, const uchar *hash, uchar *sig )
-{
- int ret = 0;
- int nb_pad = 0, olen = 0;
- uchar *p = sig;
-
- /* ---------------- */
- /* init */
- /* ---------------- */
- olen = ctx->len;
- *p++ = 0;
- *p++ = RSA_SIGN;
-
- /* ---------------- */
- /* PKCS 1.5 */
- /* ---------------- */
- nb_pad = olen - 3 - h_len;
-
- if( nb_pad < 8 )
- {
- ret = E_RSA_BAD_INPUT_DATA;
- goto _err;
- }
-
- memset( p, MASK, nb_pad );
- p = p + nb_pad;
- *p++ = 0;
-
- /* ---------------- */
- /* RAW padding */
- /* ---------------- */
- memcpy( p, hash, h_len );
-
- /* ---------------- */
- /* private key */
- /* ---------------- */
- return rsa_pri( ctx, sig, sig );
-
-_err:
-
- return ret;
-}
-
-
-int rsa_verify( rsa_ctx *ctx, int h_len, const uchar *hash, uchar *sig )
-{
- int ret = 0, len = 0, siglen = 0;
- uchar *p;
- uchar *buf;
-
- if(rsa_buf == NULL)
- {
- rsa_buf = (unsigned char *)osal_kmalloc(RSA_BUF_SIZE);
- }
-
- memset(rsa_buf, 0x00, RSA_BUF_SIZE);
-
- buf = rsa_buf;
-
- siglen = ctx->len;
-
- if( siglen < 16 || siglen > RSA_BUF_SIZE )
- {
- ret = E_RSA_BAD_INPUT_DATA;
- goto _err;
- }
-
- /* ---------------- */
- /* public key */
- /* ---------------- */
- if(0 != (ret = rsa_pub( ctx, sig, buf )))
- {
- goto _err;
- }
-
- p = buf;
-
- /* ---------------- */
- /* PKCS 1.5 */
- /* ---------------- */
- if( *p++ != 0 || *p++ != RSA_SIGN )
- {
- ret = E_RSA_INVALID_PADDING;
- goto _err;
- }
-
- while( *p != 0 )
- {
- if( p >= buf + siglen - 1 || *p != MASK )
- {
- ret = E_RSA_INVALID_PADDING;
- goto _err;
- }
-
- p++;
- }
-
- p++;
-
- len = siglen - (int)( p - buf );
-
- /* ---------------- */
- /* RAW padding */
- /* ---------------- */
- if( len == h_len)
- {
- if( 0 == memcmp( p, hash, h_len ) )
- {
- return 0;
- }
- else
- {
- ret = E_RSA_VERIFY_FAILED;
- goto _err;
- }
- }
-
- ret = E_RSA_INVALID_PADDING;
-
-_err:
-
- return ret;
-}
-
-void rsa_free( rsa_ctx *ctx )
-{
- bgn_free( &ctx->RQ );
- bgn_free( &ctx->RP );
- bgn_free( &ctx->RN );
- bgn_free( &ctx->D );
- bgn_free( &ctx->E );
- bgn_free( &ctx->N );
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/crypto/rsa_lib.c b/drivers/misc/mediatek/masp/asf/crypto/rsa_lib.c
deleted file mode 100644
index a49b3d7a3..000000000
--- a/drivers/misc/mediatek/masp/asf/crypto/rsa_lib.c
+++ /dev/null
@@ -1,249 +0,0 @@
-#include "sec_osal_light.h"
-#include "sec_typedef.h"
-#include "rsa_def.h"
-#include "alg_sha1.h"
-#include "bgn_export.h"
-#include "sec_cust_struct.h"
-#include "sec_auth.h"
-#include "sec_error.h"
-#include "sec_rom_info.h"
-#include "sec_boot_lib.h"
-#include "sec_sign_header.h"
-#include "sec_key_util.h"
-#include "sec_log.h"
-
-/**************************************************************************
- * MODULE NAME
- **************************************************************************/
-#define MOD "AUTHEN"
-
-/**************************************************************************
-* LOCAL VARIABLE
-**************************************************************************/
-uchar bRsaKeyInit = false;
-uchar bRsaImgKeyInit = false;
-
-/**************************************************************************
- * EXTERNAL VARIABLE
- **************************************************************************/
-extern uchar sha1sum[];
-extern rsa_ctx rsa;
-extern uchar rsa_ci[];
-extern AND_ROMINFO_T rom_info;
-CUST_SEC_INTER g_cus_inter;
-
-/**************************************************************************
- * RSA SML KEY INIT
- **************************************************************************/
-int lib_init_key (uchar *nKey, uint32 nKey_len, uchar *eKey, uint32 eKey_len)
-{
- int ret = SEC_OK;
-
- /* ------------------------------ */
- /* avoid re-init aes key
- if re-init key again, key value will be decoded twice ..*/
- /* ------------------------------ */
- if(true == bRsaKeyInit)
- {
- return ret;
- }
-
- bRsaKeyInit = true;
-
- if(0 != mcmp(rom_info.m_id,RI_NAME,RI_NAME_LEN))
- {
- SMSG(true,"[%s] error. key not found\n",MOD);
- ret = ERR_RSA_KEY_NOT_FOUND;
- goto _end;
- }
-
- /* ------------------------------ */
- /* clean rsa variable */
- /* ------------------------------ */
- memset( &rsa, 0, sizeof(rsa_ctx));
-
- /* ------------------------------ */
- /* init RSA module / exponent key */
- /* ------------------------------ */
- rsa.len = RSA_KEY_SIZE;
-
- /* ------------------------------ */
- /* decode key */
- /* ------------------------------ */
- sec_decode_key( nKey, nKey_len,
- rom_info.m_SEC_KEY.crypto_seed,
- sizeof(rom_info.m_SEC_KEY.crypto_seed));
-
- /* ------------------------------ */
- /* init mpi library */
- /* ------------------------------ */
- bgn_read_str( &rsa.N , 16, (char*)nKey, nKey_len );
- bgn_read_str( &rsa.E , 16, (char*)eKey, eKey_len );
-
- /* ------------------------------ */
- /* debugging */
- /* ------------------------------ */
- dump_buf(nKey,0x4);
-
-_end:
-
- return ret;
-
-}
-
-/**************************************************************************
- * SIGNING
- **************************************************************************/
-int lib_sign(uchar* data_buf, uint32 data_len, uchar* sig_buf, uint32 sig_len)
-{
-
-#if 0
-
- int i = 0;
-
- if (RSA_KEY_LEN != sig_len)
- {
- SMSG(true,"signature length is wrong (%d)\n",sig_len);
- goto _err;
- }
-
- /* hash the plain text */
- sha1(data_buf, data_len, sha1sum );
-
- /*
- 2011.09.27. Add OpenSSL compatibility support
-
- OpenSSL's command :
- openssl rsautl -sign -in xxxxx -inkey xxx.pem -out signature
-
- RSA padding type : SIG_RSA_SHA1
- original implementation for W1126 and W1132 MP release
- This padding rule can't be compatible with OpenSSL
- The cipher results are not the same
-
- RSA padding type : SIG_RSA_RAW
- This padding rule can be compatible with OpenSSL
- The cipher results are the same
-
- */
- /* encrypt the hash value (sign) */
- SMSG(true,"[%s] RSA padding : RAW \n",MOD);
- if( rsa_sign( &rsa, HASH_LEN, sha1sum, sig_buf ) != 0 )
- {
- SMSG(true, "failed\n" );
- goto _err;
- }
- SMSG(true,"[%s] sign image ... pass\n\n",MOD);
-
-
- /* output signature */
- SMSG(true,"[%s] output signature: \n",MOD);
- SMSG(true," ------------------------------------\n");
- for(i=0;i<RSA_KEY_LEN;i++)
- {
- if(i==RSA_KEY_LEN-1)
- {
- if(sig_buf[i]<0x10)
- {
- SMSG(true,"0x0%x",sig_buf[i]);
- }
- else
- {
- SMSG(true,"0x%x",sig_buf[i]);
- }
- }
- else
- {
- if(sig_buf[i]<0x10)
- {
- SMSG(true,"0x0%x,",sig_buf[i]);
- }
- else
- {
- SMSG(true,"0x%x,",sig_buf[i]);
- }
- }
- }
- SMSG(true,"\n");
-
- /* self testing : verify this signature */
- SMSG(true,"\n[%s] verify signature",MOD);
- if( rsa_verify( &rsa, HASH_LEN, sha1sum, sig_buf ) != 0 )
- {
- SMSG(true, "failed\n" );
- goto _err;
- }
- SMSG(true,"... pass\n");
-
-#endif
-
- return 0;
-
-#if 0
-
-_err:
-
- return -1;
-
-#endif
-
-}
-
-
-/**************************************************************************
- * HASHING
- **************************************************************************/
-int lib_hash (uchar* data_buf, uint32 data_len, uchar* hash_buf, uint32 hash_len)
-{
-
- if (HASH_LEN != hash_len)
- {
- SMSG(true,"hash length is wrong (%d)\n",hash_len);
- goto _err;
- }
-
- /* hash the plain text */
- sha1(data_buf, data_len, hash_buf );
-
- return 0;
-
-_err:
-
- return -1;
-
-}
-
-
-/**************************************************************************
- * VERIFY SIGNATURE
- **************************************************************************/
-int lib_verify (uchar* data_buf, uint32 data_len, uchar* sig_buf, uint32 sig_len)
-{
-
- if (RSA_KEY_LEN != sig_len)
- {
- SMSG(true,"signature length is wrong (%d)\n",sig_len);
- goto _err;
- }
-
- SMSG(true,"[%s] 0x%x,0x%x,0x%x,0x%x\n",MOD,data_buf[0],data_buf[1],data_buf[2],data_buf[3]);
-
- /* hash the plain text */
- sha1(data_buf, data_len, sha1sum);
-
- /* verify this signature */
- SMSG(true,"[%s] verify signature",MOD);
- if( rsa_verify( &rsa, HASH_LEN, sha1sum, sig_buf ) != 0 )
- {
- SMSG(true, " ... failed\n" );
- goto _err;
- }
- SMSG(true," ... pass\n");
-
- return 0;
-
-_err:
-
- return -1;
-}
-
diff --git a/drivers/misc/mediatek/masp/asf/crypto/rsa_util.c b/drivers/misc/mediatek/masp/asf/crypto/rsa_util.c
deleted file mode 100644
index 4a6f948ff..000000000
--- a/drivers/misc/mediatek/masp/asf/crypto/rsa_util.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#include "sec_osal_light.h"
-#include "sec_cust_struct.h"
-#include "bgn_internal.h"
-#include "bgn_asm.h"
-
-#define MOD "BGN"
-
-/**************************************************************************
- * TYPEDEF
- **************************************************************************/
-typedef unsigned int uint32;
-typedef unsigned char uchar;
-
-
-/**************************************************************************
- * FUNCTIONS
- **************************************************************************/
-void montg_init( ulong *mm, const bgn *P_N )
-{
- ulong x, m0 = P_N->p[0];
-
- x = m0;
- x += ( ( m0 + 2 ) & 4 ) << 1;
- x *= ( 2 - ( m0 * x ) );
-
- if( biL >= 16 )
- {
- x *= ( 2 - ( m0 * x ) );
- }
-
- if( biL >= 32 )
- {
- x *= ( 2 - ( m0 * x ) );
- }
-
- if( biL >= 64 )
- {
- x *= ( 2 - ( m0 * x ) );
- }
-
- *mm = ~x + 1;
-}
-
-void montg_mul( bgn *P_A, const bgn *P_B, const bgn *P_N, ulong mm, const bgn *P_T )
-{
- int i, n, m;
- ulong u0, u1, *d;
-
- memset( P_T->p, 0, P_T->n * ciL );
-
- d = P_T->p;
- n = P_N->n;
- m = ( P_B->n < n ) ? P_B->n : n;
-
- for( i = 0; i < n; i++ )
- {
- u0 = P_A->p[i];
- u1 = ( d[0] + u0 * P_B->p[0] ) * mm;
-
- bgn_mul_hlp( m, P_B->p, d, u0 );
- bgn_mul_hlp( n, P_N->p, d, u1 );
-
- *d++ = u0; d[n + 1] = 0;
- }
-
- memcpy( P_A->p, d, (n + 1) * ciL );
-
- if( bgn_cmp_abs( P_A, P_N ) >= 0 )
- {
- bgn_sub_hlp( n, P_N->p, P_A->p );
- }
- else
- {
- bgn_sub_hlp( n, P_A->p, P_T->p );
- }
-}
-
-void montg_red( bgn *P_A, const bgn *P_N, ulong mm, const bgn *P_T )
-{
- ulong z = 1;
- bgn U;
-
- U.n = U.s = z;
- U.p = &z;
-
- montg_mul( P_A, &U, P_N, mm, P_T );
-}
diff --git a/drivers/misc/mediatek/masp/asfv2/asf_export_inc/sec_osal.h b/drivers/misc/mediatek/masp/asfv2/asf_export_inc/sec_osal.h
index 8adec65dd..0c54a1142 100644
--- a/drivers/misc/mediatek/masp/asfv2/asf_export_inc/sec_osal.h
+++ b/drivers/misc/mediatek/masp/asfv2/asf_export_inc/sec_osal.h
@@ -2,17 +2,6 @@
#define SEC_OSAL_H
/**************************************************************************
- * Operating System Abstract Layer - ERROR Definition
- **************************************************************************/
-#define OSAL_FILE_NULL (0)
-#define OSAL_FILE_OPEN_FAIL (-1)
-#define OSAL_FILE_CLOSE_FAIL (-2)
-#define OSAL_FILE_SEEK_FAIL (-3)
-#define OSAL_FILE_GET_POS_FAIL (-4)
-#define OSAL_FILE_READ_FAIL (-5)
-
-
-/**************************************************************************
* Operating System Abstract Layer - External Function
**************************************************************************/
extern void osal_kfree(void *buf);
@@ -33,36 +22,14 @@ extern int osal_rid_lock(void);
extern void osal_rid_unlock(void);
extern void osal_msleep(unsigned int msec);
extern void osal_assert(unsigned int val);
-extern int osal_set_kernel_fs(void);
-extern void osal_restore_fs(void);
-extern int osal_filp_open_read_only(const char *file_path);
-extern void *osal_get_filp_struct(int fp_id);
-extern int osal_filp_close(int fp_id);
-extern long long osal_filp_seek_set(int fp_id, long long off);
-extern long long osal_filp_seek_end(int fp_id, long long off);
-extern long long osal_filp_pos(int fp_id);
-extern long osal_filp_read(int fp_id, char *buf, unsigned long len);
-extern long osal_is_err(int fp_id);
/**************************************************************************
* Operating System Abstract Layer - Macro
**************************************************************************/
#define SEC_ASSERT(a) osal_assert(a)
-#define ASF_FILE int
-#define ASF_FILE_NULL OSAL_FILE_NULL
-#define ASF_GET_DS osal_set_kernel_fs()
-#define ASF_PUT_DS osal_restore_fs()
-#define ASF_OPEN(file_name) osal_filp_open_read_only(file_name)
-#define ASF_FILE_ERROR(fp) (fp == OSAL_FILE_NULL)
-#define ASF_CLOSE(fp) osal_filp_close(fp)
-#define ASF_SEEK_SET(fp, off) osal_filp_seek_set(fp, off)
-#define ASF_SEEK_END(fp, off) osal_filp_seek_end(fp, off)
-#define ASF_FILE_POS(fp) osal_filp_pos(fp)
#define ASF_MALLOC(len) osal_kmalloc(len)
#define ASF_FREE(buf) osal_kfree(buf)
-#define ASF_READ(fp, buf, len) osal_filp_read(fp, buf, len)
#define ASF_STRTOK(str, delim) strsep(&str, delim)
-#define ASF_IS_ERR(fp) osal_is_err(fp)
#endif /* SEC_OSAL_H */
diff --git a/drivers/misc/mediatek/masp/asfv2/asf_inc/sec_ccci.h b/drivers/misc/mediatek/masp/asfv2/asf_inc/sec_ccci.h
index 46162f76e..b15a94ce5 100644
--- a/drivers/misc/mediatek/masp/asfv2/asf_inc/sec_ccci.h
+++ b/drivers/misc/mediatek/masp/asfv2/asf_inc/sec_ccci.h
@@ -4,8 +4,6 @@
int masp_ccci_signfmt_verify_file(char *file_path, unsigned int *data_offset,
unsigned int *data_sec_len);
int masp_ccci_version_info(void);
-int sec_ccci_file_open(char *file_path);
-int sec_ccci_file_close(int fp_id);
int masp_ccci_is_cipherfmt(int fp_id, unsigned int start_off, unsigned int *img_len);
int masp_ccci_decrypt_cipherfmt(int fp_id, unsigned int start_off, char *buf, unsigned int buf_len,
unsigned int *data_offset);
diff --git a/drivers/misc/mediatek/masp/asfv2/core/sec_legacy.c b/drivers/misc/mediatek/masp/asfv2/core/sec_legacy.c
index abdb6b62f..8f029c7b2 100644
--- a/drivers/misc/mediatek/masp/asfv2/core/sec_legacy.c
+++ b/drivers/misc/mediatek/masp/asfv2/core/sec_legacy.c
@@ -73,24 +73,6 @@ int masp_ccci_version_info(void)
return CCCI_VERSION;
}
-int sec_ccci_file_open(char *file_path)
-{
- int fp_id;
-
- fp_id = osal_filp_open_read_only(file_path);
-
- if (fp_id != OSAL_FILE_NULL)
- return fp_id;
-
- return -1;
-}
-
-int sec_ccci_file_close(int fp_id)
-{
- return osal_filp_close(fp_id);
-}
-
-
int masp_ccci_is_cipherfmt(int fp_id, unsigned int start_off, unsigned int *img_len)
{
return 0;
diff --git a/drivers/misc/mediatek/masp/asfv2/core/sec_osal.c b/drivers/misc/mediatek/masp/asfv2/core/sec_osal.c
index d4d12ce96..1ebbd60d0 100644
--- a/drivers/misc/mediatek/masp/asfv2/core/sec_osal.c
+++ b/drivers/misc/mediatek/masp/asfv2/core/sec_osal.c
@@ -11,7 +11,6 @@
#include <linux/errno.h>
#include <linux/mutex.h>
#include <linux/mtd/mtd.h>
-#include <linux/fs.h>
#include <linux/mtd/partitions.h>
#include <asm/uaccess.h>
#include <linux/slab.h>
@@ -41,11 +40,6 @@ DEFINE_SEMAPHORE(osal_secro_v5_sem);
/*****************************************************************************
* LOCAL VARIABLE
*****************************************************************************/
-static mm_segment_t curr_fs;
-#define OSAL_MAX_FP_COUNT 4096
-#define OSAL_FP_OVERFLOW OSAL_MAX_FP_COUNT
-/* The array 0 will be not be used, and fp_id=0 will be though as NULL file */
-static struct file *g_osal_fp[OSAL_MAX_FP_COUNT] = { 0 };
/*****************************************************************************
* PORTING LAYER
@@ -159,191 +153,3 @@ void osal_assert(unsigned int val)
ASSERT(val);
}
EXPORT_SYMBOL(osal_assert);
-
-int osal_set_kernel_fs(void)
-{
- int val = 0;
-
- val = down_interruptible(&sec_mm_sem);
- curr_fs = get_fs();
- set_fs(KERNEL_DS);
- return val;
-}
-EXPORT_SYMBOL(osal_set_kernel_fs);
-
-void osal_restore_fs(void)
-{
- set_fs(curr_fs);
- up(&sec_mm_sem);
-}
-EXPORT_SYMBOL(osal_restore_fs);
-
-int osal_filp_open_read_only(const char *file_path)
-{
- int filp_id = 0;
- int val = 0;
-
- val = down_interruptible(&osal_fp_sem);
-
- for (filp_id = 1; filp_id < OSAL_MAX_FP_COUNT - 1; filp_id++) {
- if (g_osal_fp[filp_id] == NULL)
- break;
- }
-
- g_osal_fp[filp_id] = filp_open(file_path, O_RDONLY, 0777);
-
- if (IS_ERR(g_osal_fp[filp_id])) {
- g_osal_fp[OSAL_FILE_NULL] = g_osal_fp[filp_id]; /* Record the fail reason in pos 0 */
- g_osal_fp[filp_id] = NULL;
- filp_id = OSAL_FILE_NULL;
- }
-
- up(&osal_fp_sem);
-
- /* the fp_id = 0 will be thought as NULL file ponter */
- if (filp_id >= OSAL_FP_OVERFLOW) {
- g_osal_fp[OSAL_FILE_NULL] = (struct file *)(-ENOMEM); /* Out of memory */
- return OSAL_FILE_NULL;
- }
-
- return filp_id;
-}
-EXPORT_SYMBOL(osal_filp_open_read_only);
-
-void *osal_get_filp_struct(int fp_id)
-{
- int val = 0;
- struct file *ret;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- ret = g_osal_fp[fp_id];
-
- up(&osal_fp_sem);
-
- return (void *)ret;
- }
-
- return (struct file *)(-ENOENT); /* No such file or directory */
-}
-EXPORT_SYMBOL(osal_get_filp_struct);
-
-int osal_filp_close(int fp_id)
-{
- int val = 0;
- int ret = 0;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- if (!IS_ERR(g_osal_fp[fp_id]))
- ret = filp_close(g_osal_fp[fp_id], NULL);
- g_osal_fp[fp_id] = NULL;
-
- up(&osal_fp_sem);
-
- return ret;
- }
-
- return OSAL_FILE_CLOSE_FAIL;
-}
-EXPORT_SYMBOL(osal_filp_close);
-
-loff_t osal_filp_seek_set(int fp_id, loff_t off)
-{
- loff_t offset;
- int val = 0;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- offset = g_osal_fp[fp_id]->f_op->llseek(g_osal_fp[fp_id], off, SEEK_SET);
-
- up(&osal_fp_sem);
-
- return offset;
- }
-
- return OSAL_FILE_SEEK_FAIL;
-}
-EXPORT_SYMBOL(osal_filp_seek_set);
-
-loff_t osal_filp_seek_end(int fp_id, loff_t off)
-{
- loff_t offset;
- int val = 0;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- offset = g_osal_fp[fp_id]->f_op->llseek(g_osal_fp[fp_id], off, SEEK_END);
-
- up(&osal_fp_sem);
-
- return offset;
- }
-
- return OSAL_FILE_SEEK_FAIL;
-}
-EXPORT_SYMBOL(osal_filp_seek_end);
-
-loff_t osal_filp_pos(int fp_id)
-{
- loff_t offset;
- int val = 0;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- offset = g_osal_fp[fp_id]->f_pos;
-
- up(&osal_fp_sem);
-
- return offset;
- }
-
- return OSAL_FILE_GET_POS_FAIL;
-}
-EXPORT_SYMBOL(osal_filp_pos);
-
-long osal_filp_read(int fp_id, char *buf, unsigned long len)
-{
- ssize_t read_len;
- int val = 0;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- read_len =
- g_osal_fp[fp_id]->f_op->read(g_osal_fp[fp_id], buf, len,
- &g_osal_fp[fp_id]->f_pos);
-
- up(&osal_fp_sem);
-
- return read_len;
- }
-
- return OSAL_FILE_READ_FAIL;
-}
-EXPORT_SYMBOL(osal_filp_read);
-
-long osal_is_err(int fp_id)
-{
- bool err;
- int val = 0;
-
- if (fp_id >= 1 && fp_id < OSAL_MAX_FP_COUNT) {
- val = down_interruptible(&osal_fp_sem);
-
- err = IS_ERR(g_osal_fp[fp_id]);
-
- up(&osal_fp_sem);
-
- return err;
- }
-
- /*osal_assert(0); */
- return 1;
-}
-EXPORT_SYMBOL(osal_is_err);