python312Packages.shiv: 1.0.7 -> 1.0.8 (#364744)
[NixPkgs.git] / pkgs / by-name / ag / age-plugin-fido2-hmac / package.nix
blob70effd886ea999f35646ecc8c66d8548d1455847
2   lib,
3   buildGoModule,
4   fetchFromGitHub,
5   stdenv,
6   libfido2,
7   openssl,
8   libcbor,
9 }:
10 let
11   darwin_arch = if stdenv.hostPlatform.system == "aarch64-darwin" then "arm64" else "amd64";
12   darwin_configure = ''
13     chmod -R +w vendor/github.com/keys-pub/go-libfido2
14     cat << EOF > vendor/github.com/keys-pub/go-libfido2/fido2_static_${darwin_arch}.go
15     package libfido2
17     /*
18     #cgo darwin LDFLAGS: -framework CoreFoundation -framework IOKit -L${lib.getLib openssl}/lib -L${lib.getLib libcbor}/lib -lfido2
19     #cgo darwin CFLAGS: -I${libfido2.dev}/include -I${openssl.dev}/include
20     */
21     import "C"
22     EOF
23   '';
25 buildGoModule rec {
26   pname = "age-plugin-fido2-hmac";
27   version = "0.2.3";
29   src = fetchFromGitHub {
30     owner = "olastor";
31     repo = "age-plugin-fido2-hmac";
32     rev = "v${version}";
33     hash = "sha256-P2gNOZeuODWEb/puFe6EA1wW3pc0xgM567qe4FKbFXg=";
34   };
36   vendorHash = "sha256-h4/tyq9oZt41IfRJmmsLHUpJiPJ7YuFu59ccM7jHsFo=";
38   ldflags = [
39     "-s"
40     "-w"
41     "-X main.version=v${version}"
42   ];
44   buildInputs = [ libfido2 ];
46   postConfigure = lib.optional stdenv.hostPlatform.isDarwin darwin_configure;
48   meta = with lib; {
49     description = "Age plugin to encrypt files with fido2 tokens using the hmac-secret extension and non-discoverable credentials";
50     homepage = "https://github.com/olastor/age-plugin-fido2-hmac/";
51     license = licenses.mit;
52     maintainers = with maintainers; [ matthewcroughan ];
53     mainProgram = "age-plugin-fido2-hmac";
54   };