summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/apr_jose.h51
-rw-r--r--jose/apr_jose_encode.c5
2 files changed, 34 insertions, 22 deletions
diff --git a/include/apr_jose.h b/include/apr_jose.h
index 5fd8931aa..59d0dcac7 100644
--- a/include/apr_jose.h
+++ b/include/apr_jose.h
@@ -914,7 +914,8 @@ typedef struct apr_jose_cb_t {
* @param jose - context pointer
* @return The apu_err_t is returned.
*/
-APR_DECLARE(apu_err_t *) apr_jose_error(apr_jose_t *jose);
+APR_DECLARE(apu_err_t *) apr_jose_error(apr_jose_t *jose)
+ __attribute__((nonnull(1)));
/**
* Make a generic JOSE structure.
@@ -926,7 +927,8 @@ APR_DECLARE(apu_err_t *) apr_jose_error(apr_jose_t *jose);
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_make(apr_jose_t *jose, apr_jose_type_e type,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(3)));
/**
* Make a JSON Web Key for encoding or decoding.
@@ -938,7 +940,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_make(apr_jose_t *jose, apr_jose_type_e type,
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_jwk_make(apr_jose_t *jose,
- apr_json_value_t *key, apr_pool_t *pool);
+ apr_json_value_t *key, apr_pool_t *pool)
+ __attribute__((nonnull(3)));
/**
* Make a JSON Web Key Set.
@@ -950,7 +953,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jwk_make(apr_jose_t *jose,
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_jwks_make(apr_jose_t *jose,
- apr_json_value_t *keys, apr_pool_t *pool);
+ apr_json_value_t *keys, apr_pool_t *pool)
+ __attribute__((nonnull(3)));
/**
* Make a signature structure for JWS.
@@ -963,7 +967,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jwks_make(apr_jose_t *jose,
*/
APR_DECLARE(apr_jose_signature_t *) apr_jose_signature_make(
apr_jose_signature_t *signature, apr_json_value_t *header,
- apr_json_value_t *protected, apr_pool_t *pool);
+ apr_json_value_t *protected, apr_pool_t *pool)
+ __attribute__((nonnull(4)));
/**
* Make a recipient structure for JWE.
@@ -974,7 +979,8 @@ APR_DECLARE(apr_jose_signature_t *) apr_jose_signature_make(
* @return The apr_jose_recipient_t is returned.
*/
APR_DECLARE(apr_jose_recipient_t *) apr_jose_recipient_make(apr_jose_recipient_t *recipient,
- apr_json_value_t *unprotected, apr_pool_t *pool);
+ apr_json_value_t *unprotected, apr_pool_t *pool)
+ __attribute__((nonnull(3)));
/**
* Make an encryption structure for JWE.
@@ -987,7 +993,8 @@ APR_DECLARE(apr_jose_recipient_t *) apr_jose_recipient_make(apr_jose_recipient_t
*/
APR_DECLARE(apr_jose_encryption_t *) apr_jose_encryption_make(apr_jose_encryption_t *encryption,
apr_json_value_t *unprotected, apr_json_value_t *protected,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(4)));
/**
* Make a compact encoded JWE.
@@ -1004,7 +1011,8 @@ APR_DECLARE(apr_jose_encryption_t *) apr_jose_encryption_make(apr_jose_encryptio
APR_DECLARE(apr_jose_t *) apr_jose_jwe_make(apr_jose_t *jose,
apr_jose_recipient_t *recipient, apr_array_header_t *recipients,
apr_jose_encryption_t *encryption, apr_jose_t *payload,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(6)));
/**
* Make a JSON encoded JWE.
@@ -1021,7 +1029,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jwe_make(apr_jose_t *jose,
APR_DECLARE(apr_jose_t *) apr_jose_jwe_json_make(apr_jose_t *jose,
apr_jose_recipient_t *recipient,
apr_array_header_t *recipients, apr_jose_encryption_t *encryption,
- apr_jose_t *payload, apr_pool_t *pool);
+ apr_jose_t *payload, apr_pool_t *pool)
+ __attribute__((nonnull(6)));
/**
* Make a compact encoded JWS.
@@ -1036,7 +1045,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jwe_json_make(apr_jose_t *jose,
*/
APR_DECLARE(apr_jose_t *) apr_jose_jws_make(apr_jose_t *jose,
apr_jose_signature_t *signature, apr_array_header_t *signatures,
- apr_jose_t *payload, apr_pool_t *pool);
+ apr_jose_t *payload, apr_pool_t *pool)
+ __attribute__((nonnull(5)));
/**
* Make a JSON encoded JWS.
@@ -1051,7 +1061,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jws_make(apr_jose_t *jose,
*/
APR_DECLARE(apr_jose_t *) apr_jose_jws_json_make(apr_jose_t *jose,
apr_jose_signature_t *signature, apr_array_header_t *signatures,
- apr_jose_t *payload, apr_pool_t *pool);
+ apr_jose_t *payload, apr_pool_t *pool)
+ __attribute__((nonnull(5)));
/**
* Make a JWT claims payload.
@@ -1066,7 +1077,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jws_json_make(apr_jose_t *jose,
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_jwt_make(apr_jose_t *jose,
- apr_json_value_t *claims, apr_pool_t *pool);
+ apr_json_value_t *claims, apr_pool_t *pool)
+ __attribute__((nonnull(3)));
/**
* Make a data buffer for encoding from the given data and length.
@@ -1080,7 +1092,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_jwt_make(apr_jose_t *jose,
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_data_make(apr_jose_t *jose, const char *typ,
- const unsigned char *in, apr_size_t inlen, apr_pool_t *pool);
+ const unsigned char *in, apr_size_t inlen, apr_pool_t *pool)
+ __attribute__((nonnull(5)));
/**
* Make a UTF-8 text buffer for encoding from the given string
@@ -1095,7 +1108,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_data_make(apr_jose_t *jose, const char *typ,
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_text_make(apr_jose_t *jose, const char *cty,
- const char *in, apr_size_t inlen, apr_pool_t *pool);
+ const char *in, apr_size_t inlen, apr_pool_t *pool)
+ __attribute__((nonnull(5)));
/**
* Make a json structure for encoding.
@@ -1108,7 +1122,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_text_make(apr_jose_t *jose, const char *cty,
* @return The apr_jose_t is returned.
*/
APR_DECLARE(apr_jose_t *) apr_jose_json_make(apr_jose_t *jose, const char *cty,
- apr_json_value_t *json, apr_pool_t *pool);
+ apr_json_value_t *json, apr_pool_t *pool)
+ __attribute__((nonnull(4)));
/**
* Sign or encrypt the apr_jose_t, and write it to the brigade.
@@ -1124,7 +1139,8 @@ APR_DECLARE(apr_jose_t *) apr_jose_json_make(apr_jose_t *jose, const char *cty,
*/
APR_DECLARE(apr_status_t) apr_jose_encode(apr_bucket_brigade *brigade,
apr_brigade_flush flush, void *ctx, apr_jose_t *jose,
- apr_jose_cb_t *cb, apr_pool_t *pool);
+ apr_jose_cb_t *cb, apr_pool_t *pool)
+ __attribute__((nonnull(1, 4, 6)));
/**
* Decode, decrypt and verify the utf8-encoded JOSE string into apr_jose_t.
@@ -1143,7 +1159,8 @@ APR_DECLARE(apr_status_t) apr_jose_encode(apr_bucket_brigade *brigade,
*/
APR_DECLARE(apr_status_t) apr_jose_decode(apr_jose_t **jose, const char *typ,
apr_bucket_brigade *brigade, apr_jose_cb_t *cb, int level, int flags,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(1, 3, 7)));
#ifdef __cplusplus
diff --git a/jose/apr_jose_encode.c b/jose/apr_jose_encode.c
index 71088b8ca..220c6f2b8 100644
--- a/jose/apr_jose_encode.c
+++ b/jose/apr_jose_encode.c
@@ -678,11 +678,6 @@ apr_status_t apr_jose_encode(apr_bucket_brigade *brigade,
apr_pool_t *p;
apr_status_t status = APR_EINVAL;
- /* if asked to encode nothing, encode nothing */
- if (jose == NULL) {
- return APR_SUCCESS;
- }
-
apr_pool_create(&p, pool);
if (p == NULL) {
return APR_ENOMEM;