la5nta / pat

A cross-platform Winlink client written in Go
https://getpat.io
MIT License
488 stars 86 forks source link

Passwords for auxiliary addresses #143

Closed kc9wwh closed 3 years ago

kc9wwh commented 6 years ago

Looking for additional information on using auxiliary_addresses. I've checked out and posted on the google group with no response and can't find anything really referencing this on the GitHub Wiki or referenced Go documentation.

I have my auxiliary address specified, but it always errors out since it can't verify the password. How do I specify the password for an auxiliary address in the config.json file?

Thank you and great job on the project!

73 Josh KC9WWH

toddejohnson commented 5 years ago

I'm looking for something similar to allow me to implement toddejohnson/rmspi#7 so my XYL can use the same TNC/radio without multiple instances if possible to check her winlink.

@kc9wwh It appears this may be an outdated feature that predates the password requirement. It might be needed to have a related issue on wl2k-go as that is where the real work is being done.

martinhpedersen commented 5 years ago

@toddejohnson is correct. The feature predates the password requirement implemented in CMS.

However, you can still use aux calls if you have the same password on all accounts.

We should probably extend the feature to support specifying passwords for each aux address. We'll have to look into how CMS/Winlink Express implemented it.

martinhpedersen commented 5 years ago

Came across the updated B2F page today, explaining how CMS/Winlink Express implements it:

With the requirement for all Winlink accounts to have and use passwords, the ;FW extension now also must supply a password hash for any additional accounts for mail forwarding, i.e., you must know the password for any account you are picking up mail for.

For example: ;FW: N2XXX OCANN|84595756

The first callsign is the login callsign (for cases where packet nodes may have altered the SSID for the connected callsign). The second callsign is one foe which N2XXX wishes to pick up mail. The code passed with this callsign is constructed using the same ;PQ challenge that was used for the primary account secure login process and the password for OCANN. Additional callsign|code constructs can also be included separated by a space.


I'm thinking we change the config's auxiliary_addresses from an array of callsigns to an array of objects containing an optional password field, like this:

{
  "auxiliary_addresses": [
    {"address":"N0CALL", "password": "myPassw0rd"}
  ]
}

The new implementation must be able to parse the old format, to ensure backward compatibility with old configuration files.