Esys_RSA_Decrypt(3)

πŸ’… Esys_RSA_Decrypt(3) β€” Library Functions Manual

okay so bestie, welcome to the Esys_RSA_Decrypt(3) page 🌸 this whole thing lives in the Library Functions Manual and it's literally all about one ESAPI function that wraps the TPM2_RSA_Decrypt command πŸŽ€ she's giving crypto, she's giving TPM, she's giving "please decrypt this for me" ✨


✨ NAME ✨

Esys_RSA_Decrypt β€” the ESAPI function for the TPM2_RSA_Decrypt command πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions

So there's a whole little trio here, and they're all TSS2_RC girlies 🫢

TSS2_RC Esys_RSA_Decrypt_Async (ESYS_CONTEXT *esysContext, ESYS_TR
    keyHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3,
    const TPM2B_PUBLIC_KEY_RSA *cipherText, const TPMT_RSA_DECRYPT
    *inScheme, const TPM2B_DATA *label)

TSS2_RC Esys_RSA_Decrypt (ESYS_CONTEXT *esysContext, ESYS_TR keyHandle,
    ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const
    TPM2B_PUBLIC_KEY_RSA *cipherText, const TPMT_RSA_DECRYPT *inScheme,
    const TPM2B_DATA *label, TPM2B_PUBLIC_KEY_RSA **message)

TSS2_RC Esys_RSA_Decrypt_Finish (ESYS_CONTEXT *esysContext,
    TPM2B_PUBLIC_KEY_RSA **message)

πŸ”₯ Detailed Description πŸ”₯

This is the ESAPI function that invokes the TPM2_RSA_Decrypt command β€” and you can call it either as a one-call situation or in an asynchronous manner 😌 two vibes, one command, no cap πŸ’…


πŸ‘‘ Function Documentation πŸ‘‘

🌟 TSS2_RC Esys_RSA_Decrypt (ESYS_CONTEXT * esysContext, ESYS_TR keyHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_PUBLIC_KEY_RSA * cipherText, const TPMT_RSA_DECRYPT * inScheme, const TPM2B_DATA * label, TPM2B_PUBLIC_KEY_RSA ** message)

One-Call function for TPM2_RSA_Decrypt ⭐

This is the one-call variant, meaning it invokes the TPM2_RSA_Decrypt command and then just blocks until the TPM response shows up 😴 like it will genuinely sit there and wait, main character energy fr. All input parameters are const (she doesn't touch them, respectfully πŸ™ˆ), and the memory for non-simple output parameters is allocated by the function implementation β€” so yeah, that allocation is on her, not you πŸ’–

Parameters πŸŽ€

  • esysContext β€” the ESYS_CONTEXT.
  • keyHandle β€” RSA key to use for decryption πŸ”‘
  • shandle1 β€” session handle for authorization of keyHandle.
  • shandle2 β€” second session handle.
  • shandle3 β€” third session handle.
  • cipherText β€” cipher text to be decrypted πŸ”“
  • inScheme β€” the padding scheme to use if the scheme associated with keyHandle is TPM2_ALG_NULL.
  • label β€” label whose association with the message is to be verified 🏷️
  • message β€” decrypted output. (callee-allocated)

Return values 🌈

  • TSS2_RC_SUCCESS if the function call was a success ✨
  • TSS2_ESYS_RC_BAD_REFERENCE if the esysContext or required input pointers or required output handle references are NULL.
  • TSS2_ESYS_RC_BAD_CONTEXT if esysContext corruption is detected πŸ’€
  • TSS2_ESYS_RC_MEMORY if the ESAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_ESYS_RC_BAD_SEQUENCE if the context has an asynchronous operation already pending πŸ™ˆ
  • TSS2_ESYS_RC_INSUFFICIENT_RESPONSE if the TPM's response does not at least contain the tag, response length, and response code.
  • TSS2_ESYS_RC_MALFORMED_RESPONSE if the TPM's response is corrupted 😭
  • TSS2_ESYS_RC_RSP_AUTH_FAILED if the response HMAC from the TPM did not verify.
  • TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS if more than one session has the 'decrypt' attribute bit set.
  • TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS if more than one session has the 'encrypt' attribute bit set.
  • TSS2_ESYS_RC_BAD_TR if any of the ESYS_TR objects are unknown to the ESYS_CONTEXT or are of the wrong type, or if required ESYS_TR objects are ESYS_TR_NONE.
  • TSS2_RCs produced by lower layers of the software stack may be returned to the caller unaltered unless handled internally πŸ‘€

πŸ¦‹ TSS2_RC Esys_RSA_Decrypt_Async (ESYS_CONTEXT * esysContext, ESYS_TR keyHandle, ESYS_TR shandle1, ESYS_TR shandle2, ESYS_TR shandle3, const TPM2B_PUBLIC_KEY_RSA * cipherText, const TPMT_RSA_DECRYPT * inScheme, const TPM2B_DATA * label)

Asynchronous function for TPM2_RSA_Decrypt ⚑

This is the asynchronous variant, which means it invokes the TPM2_RSA_Decrypt command and then dips immediately β€” it returns as soon as the command has been sent downwards the stack to the TPM πŸƒβ€β™€οΈπŸ’¨ no waiting around, she has places to be. All input parameters are const. To actually retrieve the TPM's response, you gotta call Esys_RSA_Decrypt_Finish 🫢

Parameters πŸŽ€

  • esysContext β€” the ESYS_CONTEXT.
  • keyHandle β€” RSA key to use for decryption πŸ”‘
  • shandle1 β€” session handle for authorization of keyHandle.
  • shandle2 β€” second session handle.
  • shandle3 β€” third session handle.
  • cipherText β€” cipher text to be decrypted πŸ”“
  • inScheme β€” the padding scheme to use if the scheme associated with keyHandle is TPM2_ALG_NULL.
  • label β€” label whose association with the message is to be verified 🏷️

Return values 🌈

  • ESYS_RC_SUCCESS if the function call was a success ✨
  • TSS2_ESYS_RC_BAD_REFERENCE if the esysContext or required input pointers or required output handle references are NULL.
  • TSS2_ESYS_RC_BAD_CONTEXT if esysContext corruption is detected πŸ’€
  • TSS2_ESYS_RC_MEMORY if the ESAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_RCs produced by lower layers of the software stack may be returned to the caller unaltered unless handled internally πŸ‘€
  • TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS if more than one session has the 'decrypt' attribute bit set.
  • TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS if more than one session has the 'encrypt' attribute bit set.
  • TSS2_ESYS_RC_BAD_TR if any of the ESYS_TR objects are unknown to the ESYS_CONTEXT or are of the wrong type, or if required ESYS_TR objects are ESYS_TR_NONE.

🧚 TSS2_RC Esys_RSA_Decrypt_Finish (ESYS_CONTEXT * esysContext, TPM2B_PUBLIC_KEY_RSA ** message)

Asynchronous finish function for TPM2_RSA_Decrypt πŸŽ€

This one returns the results of a TPM2_RSA_Decrypt command invoked via Esys_RSA_Decrypt_Finish 🌸 All non-simple output parameters are allocated by the function's implementation. And good news: NULL can be passed for every output parameter if the value is not required 😌 lowkey convenient, we love an optional.

Parameters πŸŽ€

  • esysContext β€” the ESYS_CONTEXT.
  • message β€” decrypted output. (callee-allocated)

Return values 🌈

  • TSS2_RC_SUCCESS on success ✨
  • ESYS_RC_SUCCESS if the function call was a success.
  • TSS2_ESYS_RC_BAD_REFERENCE if the esysContext or required input pointers or required output handle references are NULL.
  • TSS2_ESYS_RC_BAD_CONTEXT if esysContext corruption is detected πŸ’€
  • TSS2_ESYS_RC_MEMORY if the ESAPI cannot allocate enough memory for internal operations or return parameters.
  • TSS2_ESYS_RC_BAD_SEQUENCE if the context has an asynchronous operation already pending πŸ™ˆ
  • TSS2_ESYS_RC_TRY_AGAIN if the timeout counter expires before the TPM response is received ⏰
  • TSS2_ESYS_RC_INSUFFICIENT_RESPONSE if the TPM's response does not at least contain the tag, response length, and response code.
  • TSS2_ESYS_RC_RSP_AUTH_FAILED if the response HMAC from the TPM did not verify.
  • TSS2_ESYS_RC_MALFORMED_RESPONSE if the TPM's response is corrupted 😭
  • TSS2_RCs produced by lower layers of the software stack may be returned to the caller unaltered unless handled internally πŸ‘€

🫢 Author 🫢

Generated automatically by Doxygen for tpm2-tss from the source code πŸ€– (yes bestie, a robot wrote the original, we're just making it cute πŸ’…)


and that's the page!! πŸŽ€ ngl you now know everything about decrypting RSA stuff through ESAPI β€” go off πŸ‘‘

tpm2-tss Β· Version 4.1.5 Β· Esys_RSA_Decrypt(3) β€” mwah, see u in the next manpage bestie πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from