# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           github 1.0
PortGroup           dart 1.0

name                chapose

github.setup        huanguan1978 chacrypt 1.0.0 chapose-v
github.tarball_from archive

worksrcdir          ${distname}/chapose

categories          security
license             LGPL-3

maintainers         {gmail.com:huanguan1978:crown.hg} openmaintainer

description         High-performance cross-platform file security tool.
long_description    Chapose is a modern, high-performance file encryption CLI \
                    based on ChaCha20-Poly1305 (AEAD), designed for strong \
                    confidentiality and integrity verification in real-world \
                    workflows. It uses a streaming architecture to process \
                    very large files with low memory overhead, avoids loading \
                    full plaintext into memory, and provides clear failure \
                    signals on authentication mismatch. Chapose supports \
                    password- and keyfile-based operation, plus seamless \
                    environment-variable driven usage for automation.

notes "
Best practice:
1) Generate and store a dedicated keyfile in a protected location.
2) Set strict permissions for the keyfile (for example: chmod 400).
3) Configure the CHAPOSE_KEYFILE environment variable for seamless
    encrypt/decrypt operations.

Workflow automation:
For production pipelines, pair chapose with ft:filetools to automate
archive -> encrypt -> secure wipe flows using YAML tasks and ft shell.
Reference:
https://github.com/huanguan1978/chacrypt/tree/main/chapose/doc/en/
"

# openssl dgst -rmd160 chacrypt-chapose-v1.0.0.tar.gz
checksums           rmd160  698125bf8849841f86208c3269f90c02dd17a4e6 \
                    sha256  747d9edcd4d26dcdb6b6905763672e1e864ba9029e8c50b7a696c1c079ebce0a \
                    size    39993

build.target        bin/chapose.dart
build.args          -o chapose

destroot {
    xinstall -m 755 ${worksrcpath}/chapose ${destroot}${prefix}/bin/
}
