local.c revision 73ce539aa70f43ccd5302b3ef8a02ff028558b12
883N/A along with this program. If not, see <http://www.gnu.org/licenses/>.
883N/A#include "responder/secrets/secsrv_private.h"
883N/A#include "util/crypto/sss_crypto.h"
883N/Astruct local_context {
883N/A int max_secrets;
883N/A int max_payload_size;
883N/A char **plain_secret)
return EOK;
char **ciphertext)
char *output;
int ret;
return EINVAL;
return EINVAL;
if (ret) {
return ret;
return EOK;
const char *req_path,
int ret;
if (!dn) {
goto done;
s = req_path;
goto done;
goto done;
s = NULL;
done:
return ret;
int basecomps;
int dncomps;
if (path) {
return path;
struct local_db_req {
char *path;
char **secret)
const char *attr_secret;
const char *attr_enctype;
int ret;
goto done;
goto done;
goto done;
if (!attr_secret) {
goto done;
if (attr_enctype) {
done:
return ret;
char ***_keys,
int *num_keys)
char **keys;
int ret;
goto done;
goto done;
if (!keys) {
goto done;
if (!keys[i]) {
goto done;
done:
return ret;
int num;
int ret;
if (!dn) {
goto done;
for (int i = 0; i < num; i++) {
return ENOENT;
done:
return ret;
int nest_level;
return EOK;
int ret;
if (!dn) {
goto done;
goto done;
done:
return ret;
int payload_size)
int max_payload_size;
return EOK;
const char *secret)
char *enc_secret;
int ret;
if (!msg) {
goto done;
goto done;
goto done;
goto done;
goto done;
goto done;
goto done;
goto done;
goto done;
goto done;
done:
return ret;
int ret;
goto done;
goto done;
goto done;
done:
return ret;
int ret;
if (!msg) {
goto done;
goto done;
goto done;
goto done;
goto done;
done:
return ret;
int ret;
const char *basedn;
return EINVAL;
return EINVAL;
if (ret != 0) {
return EINVAL;
return ENOMEM;
goto done;
goto done;
goto done;
done:
return ret;
struct local_secret_state {
void *provider_ctx,
const char *content_type;
bool body_is_json;
char *secret;
char **keys;
int nkeys;
int plen;
int ret;
if (!lctx) {
goto done;
"application/json")) {
body_is_json = true;
"application/octet-stream")) {
body_is_json = false;
goto done;
case HTTP_GET:
if (body_is_json) {
case HTTP_PUT:
goto done;
if (body_is_json) {
&secret);
case HTTP_DELETE:
case HTTP_POST:
goto done;
goto done;
done:
int ret;
int fd;
if (ret) {
return ret;
return ret;
return EFAULT;
return EOK;
int mfd;
int ret;
return EIO;
if (ret) {
return EFAULT;
return EIO;
return EOK;