]>
Commit | Line | Data |
---|---|---|
1bdbdaff | 1 | /* |
3c2bdd7d | 2 | * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. |
1bdbdaff P |
3 | * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. |
4 | * | |
5 | * Licensed under the Apache License 2.0 (the "License"). You may not use | |
6 | * this file except in compliance with the License. You can obtain a copy | |
7 | * in the file LICENSE in the source distribution or at | |
8 | * https://www.openssl.org/source/license.html | |
9 | */ | |
10 | ||
11 | #include <openssl/crypto.h> | |
12 | #include "internal/property.h" | |
13 | ||
1bdbdaff P |
14 | typedef int OSSL_PROPERTY_IDX; |
15 | ||
6ec3b2cf RL |
16 | typedef enum { |
17 | OSSL_PROPERTY_OPER_EQ, OSSL_PROPERTY_OPER_NE, OSSL_PROPERTY_OVERRIDE | |
18 | } OSSL_PROPERTY_OPER; | |
19 | ||
20 | struct ossl_property_definition_st { | |
21 | OSSL_PROPERTY_IDX name_idx; | |
22 | OSSL_PROPERTY_TYPE type; | |
23 | OSSL_PROPERTY_OPER oper; | |
24 | unsigned int optional : 1; | |
25 | union { | |
26 | int64_t int_val; /* Signed integer */ | |
27 | OSSL_PROPERTY_IDX str_val; /* String */ | |
28 | } v; | |
29 | }; | |
30 | ||
31 | struct ossl_property_list_st { | |
fa95fc1e | 32 | int num_properties; |
6ec3b2cf RL |
33 | unsigned int has_optional : 1; |
34 | OSSL_PROPERTY_DEFINITION properties[1]; | |
35 | }; | |
36 | ||
1bdbdaff | 37 | /* Property string functions */ |
b4250010 | 38 | OSSL_PROPERTY_IDX ossl_property_name(OSSL_LIB_CTX *ctx, const char *s, |
1aedc35f | 39 | int create); |
e2ed740e | 40 | const char *ossl_property_name_str(OSSL_LIB_CTX *ctx, OSSL_PROPERTY_IDX idx); |
b4250010 | 41 | OSSL_PROPERTY_IDX ossl_property_value(OSSL_LIB_CTX *ctx, const char *s, |
1aedc35f | 42 | int create); |
e2ed740e | 43 | const char *ossl_property_value_str(OSSL_LIB_CTX *ctx, OSSL_PROPERTY_IDX idx); |
1bdbdaff P |
44 | |
45 | /* Property list functions */ | |
1bdbdaff | 46 | void ossl_property_free(OSSL_PROPERTY_LIST *p); |
da89ac0b | 47 | int ossl_property_has_optional(const OSSL_PROPERTY_LIST *query); |
1bdbdaff | 48 | |
1bdbdaff | 49 | /* Property definition cache functions */ |
b4250010 DMSP |
50 | OSSL_PROPERTY_LIST *ossl_prop_defn_get(OSSL_LIB_CTX *ctx, const char *prop); |
51 | int ossl_prop_defn_set(OSSL_LIB_CTX *ctx, const char *prop, | |
1aedc35f | 52 | OSSL_PROPERTY_LIST *pl); |