NAME

FTN::Crypt - Encryption of the FTN messages.

VERSION

0.5.1

SYNOPSIS

    use FTN::Crypt;

    my $obj = FTN::Crypt->new(
        Nodelist => 'NODELIST.*',
        Pointlist => [
            'pointlist_1.*',
            'pointlist_2',
        ],
    ) or die FTN::Crypt->error;

    $obj->encrypt_message(
        Address => $ftn_address,
        Message => $msg,
    ) or die $obj->error;

DESCRIPTION

The possibility of FTN netmail encryption may be sometimes a useful option. Corresponding nodelist flag was proposed in FSC-0073.

Although current FidoNet Policy (version 4.07 dated June 9, 1989) clearly forbids routing of encrypted traffic without the express permission of all the links in the delivery system, it's still possible to deliver such messages directly. And, obviously, such routing may be allowed in FTN networks other than FidoNet.

The proposed nodelist userflag is ENCRYPT:[TYPE], where [TYPE] is one of 'PGP2', 'PGP5', 'GnuPG'. So encryption-capable node should have something like U,ENCRYPT:PGP5 in his nodelist record.

METHODS

new()

Constructor.

Parameters:

  • Nodelist: Path to nodelist file(s), either scalar or arrayref. If contains wildcard, file with maximum number in digital extension will be selected.

  • Optional Pointlist: Path to pointlist file(s), either scalar or arrayref. If contains wildcard, file with maximum number in digital extension will be selected.

  • Optional Keyserver Keyserver (defaults to 'https://zimmermann.mayfirst.org/pks/lookup').

  • Optional Pubring Public keyring file.

  • Optional Secring Secret keyring file.

Returns:

Created object or error in FTN::Crypt->error.

Sample:

    my $obj = FTN::Crypt->new(
        Nodelist => 'NODELIST.*',
        Pointlist => [
            'pointlist_1.*',
            'pointlist_2',
        ],
    ) or die FTN::Crypt->error;

encrypt_message()

Message encryption.

Parameters:

  • Address: Recipient's FTN address.

  • Message: FTN message text with kludges.

Returns:

Encrypted message or error in $obj->error.

Sample:

    my $res = $obj->encrypt_message(
        Address => $ftn_address,
        Message => $msg,
    ) or die $obj->error;

decrypt_message()

Message decryption.

Parameters:

  • Address: Recipient's FTN address.

  • Message: FTN message text with kludges.

  • Passphrase: Key passphrase.

Returns:

Decrypted message or error in $obj->error.

Sample:

    my $res = $obj->decrypt_message(
        Address => $ftn_address,
        Message => $msg,
        Passphrase => $pass,
    ) or die $obj->error;

AUTHOR

Petr Antonov, <pietro@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2019 by Petr Antonov

This library is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses at https://opensource.org/licenses/Artistic-1.0, and http://www.gnu.org/licenses/gpl-2.0.html.

This package is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.

INSTALLATION

Using cpan:

    $ cpan FTN::Crypt

Manual install:

    $ perl Makefile.PL
    $ make
    $ make test
    $ make install

REFERENCES

1 FidoNet Policy Document Version 4.07
2 FTS-5001 - Nodelist flags and userflags
3 FSC-0073 - Encrypted message identification for FidoNet *Draft I*