blob: cd872dee4539f733f5ddbe8140c2983fa8526afa [file] [log] [blame]
Bo Lv72d0e902023-01-02 14:27:34 +00001/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
2/*
3 * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4 */
5
6#ifndef __SECURE_STORAGE_H__
7#define __SECURE_STORAGE_H__
8
9/* return value*/
10#define RET_OK 0
11#define RET_EFAIL 1
12#define RET_EINVAL 2
13#define RET_EMEM 3
14
15#define RET_EUND -1
16#define SMC_UNK -1
17
18
19#ifdef CONFIG_SECURE_STORAGE
20/* funtion name: secure_storage_write
21 * keyname : key name is ascii string
22 * keybuf : key buf
23 * keylen : key buf len
24 * keyattr: Secure/Normal, ...
25 *
26 * return 0: ok, 0x1fe: no space, other fail
27 * */
28int32_t secure_storage_write(uint8_t *keyname, uint8_t *keybuf,
29 uint32_t keylen, uint32_t keyattr);
30int32_t secure_storage_read(uint8_t *keyname, uint8_t *keybuf,
31 uint32_t keylen, uint32_t *reallen);
32int32_t secure_storage_query(uint8_t *keyname, uint32_t *retval);
33int32_t secure_storage_tell(uint8_t *keyname, uint32_t *retval);
34int32_t secure_storage_verify(uint8_t *keyname, uint8_t *hashbuf);
35int32_t secure_storage_status(uint8_t *keyname, uint32_t *retval);
36void *secure_storage_getbuffer(uint32_t *size);
37void secure_storage_notifier(void);
38void secure_storage_notifier_ex(uint32_t storagesize, uint32_t rsvarg);
39int32_t secure_storage_list(uint8_t *listbuf, uint32_t buflen,
40 uint32_t *readlen);
41int32_t secure_storage_remove(uint8_t *keyname);
42void secure_storage_set_info(uint32_t info);
43int32_t secure_storage_set_enctype(uint32_t type);
44/* return 0: success, -1: fail*/
45int32_t secure_storage_get_enctype(void);
46/*return -1: no storage, 0: default enc, 1: efuse enc, 2: fixed enc*/
47int32_t secure_storage_version(void);
48/*return -1: no storage, others: version*/
49#endif
50
51#endif