OCSP_REQUEST_ADD1_NONCE(3ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

πŸ¦‹ NAME πŸ¦‹

okay so this is OCSP_REQUEST_ADD1_NONCE(3ossl), aka the OpenSSL manual page for the OCSP nonce functions: OCSP_request_add1_nonce, OCSP_basic_add1_nonce, OCSP_check_nonce, and OCSP_copy_nonce. bestie, it's giving tiny nonce gang and we're obsessed βœ¨πŸ’…

🌸 SYNOPSIS 🌸

#include <openssl/ocsp.h>

int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len);
int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len);
int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req);
int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *resp);

πŸ’… DESCRIPTION πŸ’…

  • OCSP_request_add1_nonce() β€” adds a nonce of value val and length len to OCSP request req. If val is NULL a random nonce is used. If len is zero or negative a default length will be used (currently 16 bytes). cute, efficient, on brand πŸŽ€
  • OCSP_basic_add1_nonce() β€” is identical to OCSP_request_add1_nonce() except it adds a nonce to OCSP basic response resp. same energy, different struct, we love to see it πŸ¦‹
  • OCSP_check_nonce() β€” compares the nonce value in req and resp. vibe check but cryptographic πŸ‘€
  • OCSP_copy_nonce() β€” copies any nonce value present in req to resp. copy-paste but make it protocol πŸ’–

πŸŽ€ RETURN VALUES πŸŽ€

  • OCSP_request_add1_nonce() and OCSP_basic_add1_nonce() return 1 for success and 0 for failure. simple, iconic, no notes ✨
  • OCSP_copy_nonce() returns 1 if a nonce was successfully copied, 2 if no nonce was present in req and 0 if an error occurred. three moods, honestly 🫢
  • OCSP_check_nonce() returns the result of the nonce comparison between req and resp. The return value indicates the result of the comparison:
    • If nonces are present and equal 1 is returned.
    • If the nonces are absent 2 is returned.
    • If a nonce is present in the response only 3 is returned.
    • If nonces are present and unequal 0 is returned.
    • If the nonce is present in the request only then -1 is returned.

literally a whole little return-value zodiac, and every number eats πŸ’€πŸŒˆ

πŸ”₯ NOTES πŸ”₯

  • For most purposes the nonce value in a request is set to a random value so the val parameter in OCSP_request_add1_nonce() is usually NULL. random girlie behavior, but secure πŸŽ€
  • An OCSP nonce is typically added to an OCSP request to thwart replay attacks by checking the same nonce value appears in the response. replay attacks are NOT invited to the group chat 🚫
  • Some responders may include a nonce in all responses even if one is not supplied. overachievers, honestly ✨
  • Some responders cache OCSP responses and do not sign each response for performance reasons. As a result they do not support nonces. performance girlies doing their thing, just not nonce things 😭
  • The return values of OCSP_check_nonce() can be checked to cover each case. A positive return value effectively indicates success: nonces are both present and match, both absent or present in the response only. A nonzero return additionally covers the case where the nonce is present in the request only: this will happen if the responder doesn't support nonces. A zero return value indicates present and mismatched nonces: this should be treated as an error condition. so if you see 0, that's not a vibe β€” that's an error condition, fr fr πŸ’…
bestie warning: a 0 return value means the nonces are present and mismatched. Treat that as an error condition. no cap. πŸ”₯

🌈 SEE ALSO 🌈

the whole friend group, assembled 🫢🌸

Copyright 2015-2020 The OpenSSL Project Authors. 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.

and that's the whole page, bestie: OpenSSL 3.5.0, dated 2026-09-25 πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from