mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-08 09:08:05 -04:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
133
drivers/crypto/fmp/fmpdev_info.h
Normal file
133
drivers/crypto/fmp/fmpdev_info.h
Normal file
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* Exynos FMP device information for FIPS
|
||||
*
|
||||
* Copyright (C) 2015 Samsung Electronics Co., Ltd.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _FIPS_FMP_INFO_H_
|
||||
#define _FIPS_FMP_INFO_H_
|
||||
|
||||
#define FMP_BLK_SIZE (4096)
|
||||
|
||||
#define BYPASS_MODE 0
|
||||
#define CBC_MODE 1
|
||||
#define XTS_MODE 2
|
||||
|
||||
#define ENCRYPT 1
|
||||
#define DECRYPT 2
|
||||
|
||||
#define WRITE_MODE 1
|
||||
#define READ_MODE 2
|
||||
|
||||
/* API extensions for linux */
|
||||
#define FMP_HMAC_MAX_KEY_LEN 512
|
||||
#define FMP_CIPHER_MAX_KEY_LEN 64
|
||||
|
||||
enum fmpdev_crypto_op_t {
|
||||
FMP_AES_CBC = 1,
|
||||
FMP_AES_XTS = 2,
|
||||
FMP_SHA2_256_HMAC = 3,
|
||||
FMP_SHA2_256 = 4,
|
||||
FMPFW_SHA2_256_HMAC = 5,
|
||||
FMPFW_SHA2_256 = 6,
|
||||
FMP_ALGORITHM_ALL, /* Keep updated - see below */
|
||||
};
|
||||
#define FMP_ALGORITHM_MAX (FMP_ALGORITHM_ALL - 1)
|
||||
|
||||
/* the maximum of the above */
|
||||
#define EALG_MAX_BLOCK_LEN 16
|
||||
|
||||
/* Values for hashes/MAC */
|
||||
#define AALG_MAX_RESULT_LEN 64
|
||||
|
||||
/* maximum length of verbose alg names (depends on CRYPTO_MAX_ALG_NAME) */
|
||||
#define FMPDEV_MAX_ALG_NAME 64
|
||||
|
||||
#define DEFAULT_PREALLOC_PAGES 32
|
||||
|
||||
/* input of FMPGSESSION */
|
||||
struct session_op {
|
||||
__u32 cipher; /* cryptodev_crypto_op_t */
|
||||
__u32 mac; /* cryptodev_crypto_op_t */
|
||||
|
||||
__u32 keylen;
|
||||
__u8 __user *key;
|
||||
__u32 mackeylen;
|
||||
__u8 __user *mackey;
|
||||
|
||||
__u32 ses; /* session identifier */
|
||||
};
|
||||
|
||||
struct session_info_op {
|
||||
__u32 ses; /* session identifier */
|
||||
|
||||
/* verbose names for the requested ciphers */
|
||||
struct alg_info {
|
||||
char cra_name[FMPDEV_MAX_ALG_NAME];
|
||||
char cra_driver_name[FMPDEV_MAX_ALG_NAME];
|
||||
} cipher_info, hash_info;
|
||||
|
||||
__u16 alignmask; /* alignment constraints */
|
||||
__u32 flags; /* SIOP_FLAGS_* */
|
||||
};
|
||||
|
||||
/* If this flag is set then this algorithm uses
|
||||
* a driver only available in kernel (software drivers,
|
||||
* or drivers based on instruction sets do not set this flag).
|
||||
*
|
||||
* If multiple algorithms are involved (as in AEAD case), then
|
||||
* if one of them is kernel-driver-only this flag will be set.
|
||||
*/
|
||||
#define SIOP_FLAG_KERNEL_DRIVER_ONLY 1
|
||||
|
||||
#define COP_ENCRYPT 0
|
||||
#define COP_DECRYPT 1
|
||||
|
||||
/* input of FMPCRYPT */
|
||||
struct crypt_op {
|
||||
__u32 ses; /* session identifier */
|
||||
__u16 op; /* COP_ENCRYPT or COP_DECRYPT */
|
||||
__u16 flags; /* see COP_FLAG_* */
|
||||
__u32 len; /* length of source data */
|
||||
__u8 __user *src; /* source data */
|
||||
__u8 __user *dst; /* pointer to output data */
|
||||
/* pointer to output data for hash/MAC operations */
|
||||
__u8 __user *mac;
|
||||
/* initialization vector for encryption operations */
|
||||
__u8 __user *iv;
|
||||
|
||||
__u32 data_unit_len;
|
||||
__u32 data_unit_seqnumber;
|
||||
|
||||
__u8 __user *secondLastEncodedData;
|
||||
__u8 __user *thirdLastEncodedData;
|
||||
};
|
||||
|
||||
#define COP_FLAG_NONE (0 << 0) /* totally no flag */
|
||||
#define COP_FLAG_UPDATE (1 << 0) /* multi-update hash mode */
|
||||
#define COP_FLAG_FINAL (1 << 1) /* multi-update final hash mode */
|
||||
#define COP_FLAG_WRITE_IV (1 << 2) /* update the IV during operation */
|
||||
#define COP_FLAG_NO_ZC (1 << 3) /* do not zero-copy */
|
||||
#define COP_FLAG_AEAD_TLS_TYPE (1 << 4) /* authenticate and encrypt using the
|
||||
* TLS protocol rules */
|
||||
#define COP_FLAG_AEAD_SRTP_TYPE (1 << 5) /* authenticate and encrypt using the
|
||||
* SRTP protocol rules */
|
||||
#define COP_FLAG_RESET (1 << 6) /* multi-update reset the state.
|
||||
* should be used in combination
|
||||
* with COP_FLAG_UPDATE */
|
||||
#define COP_FLAG_AES_CBC (1 << 7)
|
||||
#define COP_FLAG_AES_XTS (1 << 8)
|
||||
#define COP_FLAG_AES_CBC_MCT (1 << 9)
|
||||
|
||||
#define FMPGSESSION _IOWR('c', 200, struct session_op)
|
||||
#define FMPFSESSION _IOWR('c', 201, __u32)
|
||||
#define FMPGSESSIONINFO _IOWR('c', 202, struct session_info_op)
|
||||
#define FMPCRYPT _IOWR('c', 203, struct crypt_op)
|
||||
#define FMP_AES_CBC_MCT _IOWR('c', 204, struct crypt_op)
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue