secp256k1

Pure cryptographic primitives on the secp256k1 elliptic curve.
git clone git://git.ppad.tech/secp256k1.git
Log | Files | Refs | LICENSE

commit f80b1e2f6780e33472a43bced55a4b9ee7b16093
Author: Jared Tobin <jared@jtobin.io>
Date:   Wed, 13 Mar 2024 16:24:02 +0400

meta: initial commit

Diffstat:
ACHANGELOG | 5+++++
ALICENSE | 20++++++++++++++++++++
Aflake.lock | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aflake.nix | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Appad-secp256k1.cabal | 26++++++++++++++++++++++++++
5 files changed, 164 insertions(+), 0 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG @@ -0,0 +1,5 @@ +# Revision history for ppad-secp256k1 + +## 0.1.0 -- YYYY-mm-dd + +* First version. Released on an unsuspecting world. diff --git a/LICENSE b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2024 Jared Tobin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/flake.lock b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1710283812, + "narHash": "sha256-F+s4//HwNEXtgxZ6PLoe5khDTmUukPYbjCvx7us2vww=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "73bf415737ceb66a6298f806f600cfe4dccd0a41", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix @@ -0,0 +1,52 @@ +{ + description = "ppad-secp256k1"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + lib = "ppad-secp256k1"; + + pkgs = import nixpkgs { inherit system; }; + hlib = pkgs.haskell.lib; + + hpkgs = pkgs.haskell.packages.ghc964; + # hpkgs = pkgs.haskell.packages.ghc964.override { + # overrides = new: old: { + # ${lib} = old.callCabal2nix lib ./. {}; + # }; + # }; + + ghc = hpkgs.ghc; + cabal = hpkgs.cabal-install; + in + { + # packages.${lib} = hpkgs.${lib}; + + # defaultPackage = self.packages.${system}.${lib}; + + devShells.default = hpkgs.shellFor { + packages = p: [ + ]; + + buildInputs = [ + cabal + ]; + + inputsFrom = builtins.attrValues self.packages.${system}; + + shellHook = '' + PS1="[${lib}] \w$ " + echo "entering ${system} shell, using" + echo "ghc: $(${ghc}/bin/ghc --version)" + echo "cabal: $(${cabal}/bin/cabal --version)" + ''; + }; + } + ); +} + diff --git a/ppad-secp256k1.cabal b/ppad-secp256k1.cabal @@ -0,0 +1,26 @@ +cabal-version: 3.0 +name: ppad-secp256k1 +version: 0.1.0 +-- synopsis: +-- description: +license: MIT +license-file: LICENSE +author: Jared Tobin +maintainer: jared@ppad.tech +-- copyright: +category: Cryptography +build-type: Simple +extra-doc-files: CHANGELOG.md +-- extra-source-files: + +common warnings + ghc-options: -Wall + +library + import: warnings + exposed-modules: MyLib + -- other-modules: + -- other-extensions: + build-depends: base ^>=4.18.2.0 + hs-source-dirs: lib + default-language: Haskell2010