Lines Matching refs:env
244 dnscrypt_server_uncurve(struct dnsc_env* env, in dnscrypt_server_uncurve() argument
273 lock_basic_lock(&env->nonces_cache_lock); in dnscrypt_server_uncurve()
275 env->nonces_cache, in dnscrypt_server_uncurve()
283 env->num_query_dnscrypt_replay++; in dnscrypt_server_uncurve()
284 lock_basic_unlock(&env->nonces_cache_lock); in dnscrypt_server_uncurve()
289 env->nonces_cache, in dnscrypt_server_uncurve()
294 lock_basic_unlock(&env->nonces_cache_lock); in dnscrypt_server_uncurve()
301 entry = dnsc_shared_secrets_lookup(env->shared_secrets_cache, in dnscrypt_server_uncurve()
306 lock_basic_lock(&env->shared_secrets_cache_lock); in dnscrypt_server_uncurve()
307 env->num_query_dnscrypt_secret_missed_cache++; in dnscrypt_server_uncurve()
308 lock_basic_unlock(&env->shared_secrets_cache_lock); in dnscrypt_server_uncurve()
327 dnsc_shared_secret_cache_insert(env->shared_secrets_cache, in dnscrypt_server_uncurve()
577 dnsc_parse_certs(struct dnsc_env *env, struct config_file *cfg) in dnsc_parse_certs() argument
584 env->signed_certs_count = 0U; in dnsc_parse_certs()
585 env->rotated_certs_count = 0U; in dnsc_parse_certs()
587 env->signed_certs_count++; in dnsc_parse_certs()
590 env->rotated_certs_count++; in dnsc_parse_certs()
592 env->signed_certs = sodium_allocarray(env->signed_certs_count, in dnsc_parse_certs()
593 sizeof *env->signed_certs); in dnsc_parse_certs()
595 env->rotated_certs = sodium_allocarray(env->rotated_certs_count, in dnsc_parse_certs()
596 sizeof env->signed_certs); in dnsc_parse_certs()
603 (char *)(env->signed_certs + signed_cert_id), in dnsc_parse_certs()
609 *(env->rotated_certs + rotated_cert_id) = env->signed_certs + signed_cert_id; in dnsc_parse_certs()
791 dnsc_parse_keys(struct dnsc_env *env, struct config_file *cfg) in dnsc_parse_keys() argument
798 env->keypairs_count = 0U; in dnsc_parse_keys()
800 env->keypairs_count++; in dnsc_parse_keys()
803 env->keypairs = sodium_allocarray(env->keypairs_count, in dnsc_parse_keys()
804 sizeof *env->keypairs); in dnsc_parse_keys()
805 env->certs = sodium_allocarray(env->signed_certs_count, in dnsc_parse_keys()
806 sizeof *env->certs); in dnsc_parse_keys()
813 KeyPair *current_keypair = &env->keypairs[keypair_id]; in dnsc_parse_keys()
829 for(c = 0; c < env->signed_certs_count; c++) { in dnsc_parse_keys()
831 env->signed_certs[c].server_publickey, in dnsc_parse_keys()
833 dnsccert *current_cert = &env->certs[cert_id++]; in dnsc_parse_keys()
837 env->signed_certs[c].magic_query, in dnsc_parse_keys()
838 sizeof env->signed_certs[c].magic_query); in dnsc_parse_keys()
840 env->signed_certs[c].version_major, in dnsc_parse_keys()
841 sizeof env->signed_certs[c].version_major in dnsc_parse_keys()
940 struct dnsc_env *env; in dnsc_create() local
947 env = (struct dnsc_env *) calloc(1, sizeof(struct dnsc_env)); in dnsc_create()
948 lock_basic_init(&env->shared_secrets_cache_lock); in dnsc_create()
949 lock_protect(&env->shared_secrets_cache_lock, in dnsc_create()
950 &env->num_query_dnscrypt_secret_missed_cache, in dnsc_create()
951 sizeof(env->num_query_dnscrypt_secret_missed_cache)); in dnsc_create()
952 lock_basic_init(&env->nonces_cache_lock); in dnsc_create()
953 lock_protect(&env->nonces_cache_lock, in dnsc_create()
954 &env->nonces_cache, in dnsc_create()
955 sizeof(env->nonces_cache)); in dnsc_create()
956 lock_protect(&env->nonces_cache_lock, in dnsc_create()
957 &env->num_query_dnscrypt_replay, in dnsc_create()
958 sizeof(env->num_query_dnscrypt_replay)); in dnsc_create()
960 return env; in dnsc_create()
964 dnsc_apply_cfg(struct dnsc_env *env, struct config_file *cfg) in dnsc_apply_cfg() argument
966 if(dnsc_parse_certs(env, cfg) <= 0) { in dnsc_apply_cfg()
969 if(dnsc_parse_keys(env, cfg) <= 0) { in dnsc_apply_cfg()
972 randombytes_buf(env->hash_key, sizeof env->hash_key); in dnsc_apply_cfg()
973 env->provider_name = cfg->dnscrypt_provider; in dnsc_apply_cfg()
975 if(dnsc_load_local_data(env, cfg) <= 0) { in dnsc_apply_cfg()
978 lock_basic_lock(&env->shared_secrets_cache_lock); in dnsc_apply_cfg()
979 env->shared_secrets_cache = slabhash_create( in dnsc_apply_cfg()
989 lock_basic_unlock(&env->shared_secrets_cache_lock); in dnsc_apply_cfg()
990 if(!env->shared_secrets_cache){ in dnsc_apply_cfg()
993 lock_basic_lock(&env->nonces_cache_lock); in dnsc_apply_cfg()
994 env->nonces_cache = slabhash_create( in dnsc_apply_cfg()
1004 lock_basic_unlock(&env->nonces_cache_lock); in dnsc_apply_cfg()
1009 dnsc_delete(struct dnsc_env *env) in dnsc_delete() argument
1011 if(!env) { in dnsc_delete()
1015 sodium_free(env->signed_certs); in dnsc_delete()
1016 sodium_free(env->rotated_certs); in dnsc_delete()
1017 sodium_free(env->certs); in dnsc_delete()
1018 sodium_free(env->keypairs); in dnsc_delete()
1019 lock_basic_destroy(&env->shared_secrets_cache_lock); in dnsc_delete()
1020 lock_basic_destroy(&env->nonces_cache_lock); in dnsc_delete()
1021 slabhash_delete(env->shared_secrets_cache); in dnsc_delete()
1022 slabhash_delete(env->nonces_cache); in dnsc_delete()
1023 free(env); in dnsc_delete()