kinetic-c
v0.12.0
Seagate Kinetic Protocol Client Library for C
Main Page
Related Pages
Data Structures
Files
File List
Globals
src
lib
kinetic_acl_types.h
Go to the documentation of this file.
1
/*
2
* kinetic-c
3
* Copyright (C) 2015 Seagate Technology.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18
*
19
*/
20
#ifndef KINETIC_ACL_TYPES_H
21
#define KINETIC_ACL_TYPES_H
22
23
#include <stdlib.h>
24
#include <stdint.h>
25
#include <stdbool.h>
26
#include "
kinetic.pb-c.h
"
27
28
typedef
enum
{
29
HMAC_UNKNOWN
= 0,
30
HMAC_SHA1
= 1,
31
HMAC_TYPE_COUNT
,
32
}
hmac_type_t
;
33
34
struct
hmac_key
{
35
hmac_type_t
type
;
36
size_t
length
;
37
uint8_t
key
[];
38
};
39
40
struct
ACL
{
41
size_t
ACL_ceil
;
42
size_t
ACL_count
;
43
Com__Seagate__Kinetic__Proto__Command__Security__ACL **
ACLs
;
44
};
45
46
#define ACL_MAX_PERMISSIONS 8
47
48
typedef
enum
{
49
ACL_OK
= 0,
50
ACL_END_OF_STREAM
= 1,
51
ACL_ERROR_NULL
= -1,
52
ACL_ERROR_MEMORY
= -2,
53
ACL_ERROR_JSON_FILE
= -3,
54
ACL_ERROR_BAD_JSON
= -4,
55
ACL_ERROR_MISSING_FIELD
= -5,
56
ACL_ERROR_INVALID_FIELD
= -6,
57
}
KineticACLLoadResult
;
58
59
#endif // KINETIC_ACL_TYPES_H
ACL_ERROR_INVALID_FIELD
Invalid field.
Definition:
kinetic_acl_types.h:56
HMAC_SHA1
Definition:
kinetic_acl_types.h:30
hmac_key::type
hmac_type_t type
Definition:
kinetic_acl_types.h:35
hmac_key::key
uint8_t key[]
Definition:
kinetic_acl_types.h:37
ACL_OK
Okay.
Definition:
kinetic_acl_types.h:49
ACL_ERROR_MISSING_FIELD
Missing required field.
Definition:
kinetic_acl_types.h:55
ACL_END_OF_STREAM
End of stream.
Definition:
kinetic_acl_types.h:50
kinetic.pb-c.h
KineticACLLoadResult
KineticACLLoadResult
Definition:
kinetic_acl_types.h:48
hmac_key
Definition:
kinetic_acl_types.h:34
HMAC_TYPE_COUNT
Definition:
kinetic_acl_types.h:31
ACL::ACLs
Com__Seagate__Kinetic__Proto__Command__Security__ACL ** ACLs
ACL struct array.
Definition:
kinetic_acl_types.h:43
hmac_type_t
hmac_type_t
Definition:
kinetic_acl_types.h:28
ACL_ERROR_JSON_FILE
Unable to open JSON file.
Definition:
kinetic_acl_types.h:53
ACL_ERROR_BAD_JSON
Invalid JSON in file.
Definition:
kinetic_acl_types.h:54
ACL::ACL_ceil
size_t ACL_ceil
Ceiling of ACLs array: resize if count == ceil.
Definition:
kinetic_acl_types.h:41
ACL::ACL_count
size_t ACL_count
How many ACL * structs are in ACLs[].
Definition:
kinetic_acl_types.h:42
ACL
Definition:
kinetic_acl_types.h:40
ACL_ERROR_NULL
NULL pointer error.
Definition:
kinetic_acl_types.h:51
HMAC_UNKNOWN
Definition:
kinetic_acl_types.h:29
ACL_ERROR_MEMORY
Memory allocation failure.
Definition:
kinetic_acl_types.h:52
hmac_key::length
size_t length
Definition:
kinetic_acl_types.h:36
Generated by
1.8.8