0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _KEYS_RXRPC_TYPE_H
0009 #define _KEYS_RXRPC_TYPE_H
0010
0011 #include <linux/key.h>
0012
0013
0014
0015
0016 extern struct key_type key_type_rxrpc;
0017
0018 extern struct key *rxrpc_get_null_key(const char *);
0019
0020
0021
0022
0023 struct rxkad_key {
0024 u32 vice_id;
0025 u32 start;
0026 u32 expiry;
0027 u32 kvno;
0028 u8 primary_flag;
0029 u16 ticket_len;
0030 u8 session_key[8];
0031 u8 ticket[];
0032 };
0033
0034
0035
0036
0037 struct rxrpc_key_token {
0038 u16 security_index;
0039 bool no_leak_key;
0040 struct rxrpc_key_token *next;
0041 union {
0042 struct rxkad_key *kad;
0043 };
0044 };
0045
0046
0047
0048
0049 struct rxrpc_key_data_v1 {
0050 u16 security_index;
0051 u16 ticket_length;
0052 u32 expiry;
0053 u32 kvno;
0054 u8 session_key[8];
0055 u8 ticket[];
0056 };
0057
0058
0059
0060
0061
0062 #define AFSTOKEN_LENGTH_MAX 16384
0063 #define AFSTOKEN_STRING_MAX 256
0064 #define AFSTOKEN_DATA_MAX 64
0065 #define AFSTOKEN_CELL_MAX 64
0066 #define AFSTOKEN_MAX 8
0067 #define AFSTOKEN_BDATALN_MAX 16384
0068 #define AFSTOKEN_RK_TIX_MAX 12000
0069 #define AFSTOKEN_GK_KEY_MAX 64
0070 #define AFSTOKEN_GK_TOKEN_MAX 16384
0071
0072
0073
0074
0075
0076 static inline u32 rxrpc_time64_to_u32(time64_t time)
0077 {
0078 if (time < 0)
0079 return 0;
0080
0081 if (time > UINT_MAX)
0082 return UINT_MAX;
0083
0084 return (u32)time;
0085 }
0086
0087
0088
0089
0090 static inline time64_t rxrpc_u32_to_time64(u32 time)
0091 {
0092 return (time64_t)time;
0093 }
0094
0095 #endif