shishi_kdc_process(3)

πŸ“¦
version 1.0.3 Β· 2 versions
  • 1.0.3 Β· debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 1.0.2 Β· ubuntu jammy
, in debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– shishi_kdc_process β€” the glow-up your KDC exchange deserves πŸ’–

okay so bestie, welcome to shishi_kdc_process(3) from the shishi manual. yes we're reading a manpage together, this is our little date. it's giving "cryptographic API but make it cute". πŸŽ€


✨ NAME ✨

shishi_kdc_process β€” it's an API function, babes. that's the whole vibe.


🌸 SYNOPSIS 🌸

#include <shishi.h>

int shishi_kdc_process(Shishi * handle, Shishi_asn1 kdcreq, Shishi_asn1
kdcrep, Shishi_key * key, int keyusage, Shishi_asn1 * enckdcreppart);

look at her. six whole arguments. she's thriving. πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

the receipts, one by one:

  • Shishi * handle β€” the Shishi handle, allocated for you by shishi_init(). your main character. πŸ‘‘
  • Shishi_asn1 kdcreq β€” input variable holding the transmitted KDC-REQ. the message you sent out into the world, no cap.
  • Shishi_asn1 kdcrep β€” input variable holding the received KDC-REP. what the world sent back. πŸ‘€
  • Shishi_key * key β€” input pointer to the key for decrypting parts of kdcrep. the little key to the little lock. πŸ”‘
  • int keyusage β€” Kerberos key usage code. it's exactly what it sounds like, bestie, just a number with a job.
  • Shishi_asn1 * enckdcreppart β€” output pointer for the extracted EncKDCRepPart. this is where the goodies land. 🎁

🌈 DESCRIPTION 🌈

so what does she do. she processes a KDC client exchange and extracts a decrypted EncKDCRepPart β€” that's the thing holding all the details about the received ticket. the way that works?? iconic honestly.

πŸ’‘ if you actually want the ticket itself, use shishi_kdcrep_get_ticket() to extract it. this function is about the part, not the ticket. don't get it twisted.

she also verifies the various conditions that must hold if the response is even gonna be considered valid. she's a vibe check, essentially. specifically:

  • she compares nonces, using shishi_kdc_check_nonce(). ✨
  • and if the exchange was an AS exchange, she also checks cname and crealm, using shishi_as_check_cname() and shishi_as_check_crealm(). thorough queen behavior, we love to see it.
🫢 real talk though: usually you should use shishi_as_process() and shishi_tgs_process() instead of calling this one directly. they simplify computation of the decryption key, and honestly, why do extra work when someone already did it for you. that's called delegating and it's a skill.

πŸ’œ RETURN VALUE πŸ’œ

returns SHISHI_OK if the KDC client exchange was successful. and bestie… multiple failure conditions are possible. so many. a whole buffet of ways things can go sideways. 😭


πŸ™ˆ REPORTING BUGS πŸ™ˆ

found a bug? not me gatekeeping. report bugs to <bug-shishi@gnu.org>.

they literally want to hear from you. it's giving community. 🫢


Copyright Β© 2002-2022 Simon Josefsson.

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

(that's fancy-speak for "go ahead, just keep the receipts attached". πŸ’–)


⭐ SEE ALSO ⭐

The full documentation for shishi is maintained as a Texinfo manual. If the info and shishi programs are properly installed at your site, the command

info shishi

should give you access to the complete manual. iykyk β€” it's all in there. πŸ“šβœ¨


and that's the whole page, bestie!! you read a manpage, you understood a manpage, you ate. this was shishi version 1.0.3, page shishi_kdc_process(3). mwah, go decrypt something. πŸ’…πŸŒΈπŸ¦‹