HCSECD.CONF(5)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

πŸ’… HCSECD.CONF(5) β€” the hcsecd.conf girlie manual πŸ’…

okay so bestie, you know hcsecd(8)? this is its glow-up config file, the hcsecd.conf one, and I'm gonna walk you through it like we're texting at 2am. it's giving "Bluetooth link keys but make it a vibe check." πŸ¦‹


✨ NAME ✨

hcsecd.conf β€” literally the configuration file for hcsecd(8), no cap πŸ’–


🌸 DESCRIPTION 🌸

So. The hcsecd.conf file is the configuration file for the hcsecd(8) Bluetooth link keys/PIN codes management daemon. That's it, that's the whole personality. πŸŽ€

It's a free-form ASCII text file, and it gets parsed by the recursive-descent parser built into hcsecd(8) β€” yes she has a parser, she's built different. The file may contain extra tabs and newlines for formatting purposes, so go ahead and make it pretty, she won't mind. πŸ’…

Keywords in the file are case-sensitive β€” so don't be out here typing BDADDR and expecting it to work, because it will NOT, and I will know. πŸ™ˆ

Comments? You can place them anywhere within the file (except within quotes β€” the quotes are sacred, do not touch). Comments begin with the # character and end at the end of the line. Iconic behaviour, honestly. ✨


πŸ¦‹ FILE FORMAT πŸ¦‹

The hcsecd.conf file consists of a list of device entries. Each device entry defines a link key or PIN code for a remote Bluetooth device, and each remote Bluetooth device is identified by its unique BD_ADDR β€” that's her government name, don't forget it. πŸ‘‘

The device entry looks like this, lowkey:

device { option argument; [option argument;] }

The following section describes all supported options and arguments. (Yes, all of them. I'm not skipping a single one, that's not the energy we're bringing today.) 🫢

πŸ’œ the options πŸ’œ

  • bdaddr BD_ADDR β€” Specify remote device BD_ADDR for the entry. That's the identifier, the main character energy of the whole block. ⭐
  • name device_name β€” Specify user friendly name for the entry. Name is a string in straight double quotes, so like "my phone" β€” straight quotes only, bestie, curly quotes are NOT invited to this party. πŸŽ€
  • key link_key β€” Specify link key for the entry. Link key is hexadecimal string up to 32 characters in length starting with 0x. so it's giving 0x plus your little hex besties. πŸ”₯
  • key nokey β€” Specify no link key for the entry. that's right, keyless behaviour, we love a minimal queen. πŸ’€
  • pin PIN_code β€” Specify PIN code for the entry. PIN code is a string up to 16 characters in length in straight double quotes. sixteen chars max, and again β€” straight quotes. πŸ“
  • pin nopin β€” Specify no PIN code for the entry. no pin, no problem, no notes. πŸ™ˆ

🌈 EXAMPLES 🌈

A sample hcsecd.conf file, here she is in all her glory:

# Default entry is applied if no better match found
# It MUST have 00:00:00:00:00:00 as bdaddr
device {
        bdaddr  00:00:00:00:00:00;
        name    "Default entry";
        key     nokey;
        pin     nopin;
}

# Ericsson T68 phone
device {
        bdaddr  00:80:37:5e:4d:d4;
        name    "Ericsson T68 phone";
        key     nokey;
        pin     "0000"; # PIN code
}

# Dummy device
device {
        bdaddr  00:11:22:33:44:55;
        name    "Dummy";
        key     0x00112233445566778899aabbccddeeff; # 16 bytes key
        pin     nopin;
}
⚠️ okay so the default entry β€” the one that gets applied if no better match is found β€” MUST have 00:00:00:00:00:00 as bdaddr. It MUST. Not "should". MUST. That's a whole lot of caps and it's not for decoration, bestie. 😭

🧚 SEE ALSO 🧚

  • hcsecd(8) β€” go read her too, she's the whole reason this file exists πŸ’–

πŸ‘‘ AUTHORS πŸ‘‘

Maksim Yevmenkin <m_evmenkin@yahoo.com> β€” the icon, the legend, the moment. 🫢


and that's the page!! this was Debian's HCSECD.CONF(5), dated May 26, 2003 β€” yes she's an elder but she still slays, periodt. πŸŒΈβœ¨πŸ’…

πŸ“¦ where this page comes from