ecryptfs_de...rom_filename(9)
π ecryptfs_decode_from_filename(9) β Kernel API Manual β¨
Okay bestie, so picture this: you're deep in the kernel, you got a filename that's been encoded, and you need to decode those octets back into something real. That's literally this function. It's the ecryptfs_decode_from_filename girlie, and she's living her best life in the eCryptfs crypto corner of the kernel. π
She's from the Kernel API Manual, and honestly? Iconic. π
πΈ NAME πΈ
ecryptfs_decode_from_filename β no cap, that's the whole name. The original doesn't give her a one-line tagline, she just is. Main character energy, honestly. π
π¦ SYNOPSIS π¦
void ecryptfs_decode_from_filename (unsigned char *dst , size_t
*dst_size , const unsigned char *src , size_t src_size );
That's the whole signature, verbatim, slay. Note she returns void β she's not here to give you feedback, she's here to do the thing. π
β¨ ARGUMENTS β¨
dstβ okay so this is the destination, and she's got a mood. If you passNULL, the function is like "k, I'm just gonna setdst_sizeand dip" β that's it, it only setsdst_sizeand returns. But if it's non-NULL? Then she actually decodes the encoded octets insrcinto the memory thatdstpoints to. Sodstis like, the vibe check:NULLmeans "just tell me the size," non-NULLmeans "we're doing this for real." π«Άdst_sizeβ this gets set to the size of the decoded string. She's telling you how big the decoded result is, bestie. Lowkey the whole point of theNULLbranch. β¨srcβ the encoded set of octets to decode. This is the input, the raw material, the encoded girliepop going in. πsrc_sizeβ the size of the encoded set of octets to decode. You gotta tell her how many octets you're handing over, fr fr. π
π SEE ALSO π
So there's a whole kernel file involved β it lives at ./fs/ecryptfs/crypto.c β and then a massive friend group of functions, all (9) section because they're kernel API besties. Here's the full squad, no one gets left out:
ecryptfs_from_hex(9)ecryptfs_derive_iv(9)ecryptfs_init_crypt_stat(9)ecryptfs_destroy_crypt_stat(9)virt_to_scatterlist(9)crypt_scatterlist(9)crypt_extent(9)ecryptfs_encrypt_page(9)ecryptfs_decrypt_page(9)ecryptfs_init_crypt_ctx(9)ecryptfs_copy_mount_wide_flags_to_inode_flags(9)ecryptfs_set_default_crypt_stat_vals(9)ecryptfs_new_file_context(9)ecryptfs_validate_marker(9)ecryptfs_process_flags(9)write_ecryptfs_marker(9)ecryptfs_code_for_cipher_string(9)ecryptfs_cipher_code_to_string(9)ecryptfs_write_headers_virt(9)ecryptfs_write_metadata(9)set_default_header_data(9)ecryptfs_read_headers_virt(9)ecryptfs_read_xattr_region(9)ecryptfs_process_key_cipher(9)ecryptfs_destroy_crypto(9)ecryptfs_tfm_exists(9)ecryptfs_get_tfm_and_mutex_for_cipher_name(9)ecryptfs_encode_for_filename(9)ecryptfs_encrypt_and_encode_filename(9)ecryptfs_decode_and_decrypt_filename(9)
Like, that's the whole group chat. Go read them too, iykyk. ππ
Side note bestie:ecryptfs_encode_for_filename(9)is literally her mirror twin β the encode girlie to this decode girlie β andecryptfs_decode_and_decrypt_filename(9)is the next-level combo move. Obsessed. π§
Later bestie! This page comes straight out of ./fs/ecryptfs and it's dated October 2026 β so yeah, she's from the future, and she ate. π
β¨π¦ No cap, periodt. π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms