1bdbdaffdc
Properties are a sequence of comma separated name=value pairs. A name without a corresponding value is assumed to be a Boolean and have the true value 'yes'. Values are either strings or numbers. Strings can be quoted either _"_ or _'_ or unquoted (with restrictions). There are no escape characters inside strings. Number are either decimal digits or '0x' followed by hexidecimal digits. Numbers are represented internally as signed sixty four bit values. Queries on properties are a sequence comma separated conditional tests. These take the form of name=value (equality test), name!=value (inequality test) or name (Boolean test for truth). Queries can be parsed, compared against a definition or merged pairwise. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8224)
35 lines
1.5 KiB
C
35 lines
1.5 KiB
C
/*
|
|
* Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
|
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
|
*
|
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
* this file except in compliance with the License. You can obtain a copy
|
|
* in the file LICENSE in the source distribution or at
|
|
* https://www.openssl.org/source/license.html
|
|
*/
|
|
|
|
#ifndef HEADER_PROPERTY_H
|
|
# define HEADER_PROPERTY_H
|
|
|
|
typedef struct ossl_method_store_st OSSL_METHOD_STORE;
|
|
|
|
/* Implementation store functions */
|
|
OSSL_METHOD_STORE *ossl_method_store_new(void);
|
|
void ossl_method_store_free(OSSL_METHOD_STORE *store);
|
|
int ossl_method_store_add(OSSL_METHOD_STORE *store, int nid,
|
|
const char *properties, void *implementation,
|
|
void (*implementation_destruct)(void *));
|
|
int ossl_method_store_remove(OSSL_METHOD_STORE *store,
|
|
int nid, const void *implementation);
|
|
int ossl_method_store_fetch(OSSL_METHOD_STORE *store, int nid,
|
|
const char *prop_query, void **result);
|
|
int ossl_method_store_set_global_properties(OSSL_METHOD_STORE *store,
|
|
const char *prop_query);
|
|
|
|
/* proeprty query cache functions */
|
|
int ossl_method_store_cache_get(OSSL_METHOD_STORE *store, int nid,
|
|
const char *prop_query, void **result);
|
|
int ossl_method_store_cache_set(OSSL_METHOD_STORE *store, int nid,
|
|
const char *prop_query, void *result);
|
|
|
|
#endif
|