blob: 6b46bbb88e11015d64c703c1484e9a47e26c5d40 [file] [log] [blame]
/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
/*
* include/linux/amlogic/aml_key.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef _AML_KEY_H_
#define _AML_KEY_H_
enum user_id {
DSC_LOC_DEC,
DSC_NETWORK,
DSC_LOC_ENC,
CRYPTO_T0 = 0x100,
CRYPTO_T1 = 0x101,
CRYPTO_T2 = 0x102,
CRYPTO_T3 = 0x103,
CRYPTO_T4 = 0x104,
CRYPTO_T5 = 0x105,
CRYPTO_ANY = 0x106,
};
enum key_algo {
KEY_ALGO_AES,
KEY_ALGO_TDES,
KEY_ALGO_DES,
KEY_ALGO_CSA2,
KEY_ALGO_CSA3,
KEY_ALGO_NDL,
KEY_ALGO_ND,
KEY_ALGO_S17
};
struct key_descr {
unsigned int key_index;
unsigned int key_len;
unsigned char key[32];
};
struct key_config {
unsigned int key_index;
int key_userid;
int key_algo;
//cur just for s17 algo
unsigned int ext_value;
};
struct key_alloc {
int is_iv;
unsigned int key_index;
};
#define KEY_ALLOC _IOWR('o', 64, struct key_alloc)
#define KEY_FREE _IO('o', 65)
#define KEY_SET _IOR('o', 66, struct key_descr)
#define KEY_CONFIG _IOR('o', 67, struct key_config)
#define KEY_GET_FLAG _IOWR('o', 68, struct key_descr)
//int dmx_key_init(void);
//void dmx_key_exit(void);
#endif