📄 bc_ioctl.h
字号:
/******************************************************************* * Copyright (c) 1994-1998 Jetico, Inc., Finland * All rights reserved. * * File: include/bc_ioctl.h * * Description: ioctl() interface to BestCrypt driver * * Scope: BestCrypt driver, driver calls wrapper * * Platforms: Linux * * Author: Nail R. Kaipov * * Created: 10-Nov-1998 * * Revision: $Id: bc_ioctl.h,v 1.9 2004/12/16 08:42:35 nail Rel-1.6-5 $ * *******************************************************************/#ifndef __BC_IOCTL__#define __BC_IOCTL__/* MAX key length in bits */#define MAX_KEY_LENGTH 512/* pool of random bytes */#define POOL_SIZE_BYTES 512/* MAX module name length in bytes. limited by kerneld */#define MOD_NAME_LEN 64/* MAX block size for BC_(DE)ENCRYPT_BLOCK in bytes */#define MAX_BLOCK_SIZE 4096#define BC_MAGIC 0x0000BCBCtypedef struct ALG_SERV_ { int bc_fd; ALG_ID alg_id; char *alg_module;} ALG_SERV; /* IOCTL commands */#define BC_GET_INFO 0xBC00struct bc_info { int magic; /* magic number protection */ int error; /* return error code */ int ver_major; /* major version number */ int ver_minor; /* minor version number */ int busy; /* is device busy */};#define BC_SET_FD 0xBC01#define BC_CLR_FD 0xBC02#define BC_LOCK_DEV 0xBC03#define BC_UNLOCK_DEV 0xBC04#define BC_CHECK_FD 0xBC05#define BC_NOTIFY_PID 0xBC06#define BC_GET_PRIV 0xBC07#define BC_FORCE_UNLOCK 0xBC09#define BC_CHECK_ACTIVITY 0xBC0A/* BC driver user flags definition */#define BC_FLAGS_READONLY 0x00000001#define BC_FLAGS_MULTPART 0x00000002#define BC_FLAGS_IV_64BIT 0x00000004struct bc_file64 { int magic; /* magic number protection */ int error; /* return error code */ int fd; /* container's file descriptor */ unsigned long long offset; /* data offset. ALIGNED by 8 bytes */ unsigned long long start_sector;/* starting sector for actual data */ unsigned long long num_sectors; /* actual data size */ unsigned int flags; /* binding flags */ ALG_ID alg_id; /* encryption algorithm id */ KEY_HANDLE key_handle; /* key handle (invisible to user?) */};#define BC_CONTAINER_UNUSED 0#define BC_CONTAINER_USED 1#define BC_CONTAINER_MOUNTED 2struct bc_check { int magic; /* magic number protection */ int error; /* return error code */ int fd; /* container's file descriptor */ int busy; /* BC_CONTAINER_* flags (return) */};#define BC_PID_EXCLUDE 0#define BC_PID_INCLUDE 1struct bc_pid { int magic; /* magic number protection */ int error; /* return error code */ int pid; /* pid to notify */ int sig; /* signal to send */ int op; /* BC_PID_EXCLUDE/INCLUDE */};#define BC_VERIFY_ALG 0xBC10struct bc_alg { int magic; /* magic number protection */ int error; /* return error code */ ALG_ID alg_id; /* encryption algorithm id */ char alg_module[MOD_NAME_LEN]; /* algorithm module name */};#define BC_MAKE_KEY 0xBC20#define BC_TEST_KEY 0xBC21#define BC_FREE_KEY 0xBC22struct bc_key { int magic; /* magic number protection */ int error; /* return error code */ ALG_ID alg_id; /* encryption algorithm id */ char alg_module[MOD_NAME_LEN]; /* algorithm module name */ unsigned char *key; /* pointer to user password */ unsigned int key_len; /* key length in ... */ unsigned char *pool; /* pointer to rnd data pool */ KEY_HANDLE key_handle; /* key handle */};#define BC_ENCRYPT_BLOCK 0xBC30#define BC_DECRYPT_BLOCK 0xBC31struct bc_block { int magic; /* magic number protection */ int error; /* return error code */ ALG_ID alg_id; /* encryption algorithm */ KEY_HANDLE key_handle; /* encryption key */ unsigned char iv[8]; /* initial vector */ unsigned char *buffer; /* block to be processed */ unsigned int buffer_len; /* block length. ALIGNED?? */};#endif /* __BC_IOCTL__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -