A port of Namespaces are used to separate different curves

Description

Namespaces are used to separate different curves.

So for example to support both ED25519 and the NIST P256 curves, one could import into a particular module both "miracl/core/ed25519" and "miracl/core/nist256"

Separate ROM files provide the constants required for each curve. Some files (BIG.go, FP.go, ECP.go) also specify certain constants that must be set for the particular curve.

TODO:

  • Finish tests
    • Add 32-bit specific code from generated content with 32 bit build flags
    • Possibly add anti-32-bit build flags to 64 bit files?
    • GOOS=linux GOARCH=386 go test -v -bench=. ./...
  • Include 32-bit files

Installation and Testing

Note: The MIRACL library for Go must be downloaded from the github repository and configured locally before use. Therefore it cannot simply be specified as a requirement and fetched directly from its github repository into a project.

Assumes version 1.16+ of Go

Create a directory in any suitable location

mkdir miracl
cd miracl
go mod init miracl

Copy in all files from the go/ directory of the MIRACL core repository.

To build the library and see it in action, execute the python3 script config32.py or config64.py (depending on whether you want a 32 or 64-bit build), and select the curves that you wish to support.


To create a 64-bit library

python3 config64.py

Then select options 1, 3, 7, 28, 30, 37, 38 and 41 (these are fixed for the example program provided). Select 0 to exit.

Run the ECC test program by executing

go run TestECC.go

Run the MPIN test program by executing

go run TestMPIN.go

The correct PIN is 1234

Run another test program by executing

go run TestBLS.go

Next run the Benchmark program by executing

go run BenchtestALL.go

Finally

go run TestNHS.go

Alternatively building and testing can be combined via

python3 configXX.py test

where XX can be 32 or 64

Note that this builds the library for ALL of the options. Executables of the above test programs are created, and can be "go run" immediately.


NEW: support for emerging Hash To Curve standard. See https://datatracker.ietf.org/doc/draft-irtf-cfrg-hash-to-curve/

Create 32 or 64-bit library selecting curves 1, 2, 3, 7, 17 and 31 (ED25519, C25519, NIST256, GOLDILOCKS, SECP256K1 and BLS12381)

go run TestHTP.go

Test program runs through test vectors from the draft standard.


NEW: Experimental support for emerging HPKE (Hybrid Public Key Encryption) standard. See https://datatracker.ietf.org/doc/draft-irtf-cfrg-hpke/

New HPKE.go api file

  • Supports KEM_IDs for X25519, X448, P256 and P521
  • Supports HDF_IDs for SHA256/512
  • Supports AEAD_IDs for AES-GCM-128/256 only

Create 32 or 64-bit library selecting curves 2 and 10 (C25519 and P521)

go run TestHPKE.go

Test program runs through test vectors for all modes 0-3.

Owner
Inskape
A new approach to how the internet works
Inskape
Similar Resources

Plugs module to see different types of plug types needed in different countries, and a comparison tool between two countries plug socket types.

plugs Importing the module: go get github.com/matthewboyd/plugs "github.com/matthewboyd/plugs" How to use the module: There are two functions wi

Dec 28, 2021

Powerful and versatile MIME sniffing package using pre-compiled glob patterns, magic number signatures, XML document namespaces, and tree magic for mounted volumes, generated from the XDG shared-mime-info database.

mimemagic Powerful and versatile MIME sniffing package using pre-compiled glob patterns, magic number signatures, xml document namespaces, and tree ma

Nov 3, 2022

Go encoding/xml package that improves support for XML namespaces

encoding/xml with namespaces This is a fork of the Go encoding/xml package that improves support for XML namespaces, kept in sync with golang/go#48641

Nov 11, 2022

A controller managing namespaces deployments, statefulsets and cronjobs objects. Inspired by kube-downscaler.

kube-ns-suspender Kubernetes controller managing namespaces life cycle. kube-ns-suspender Goal Usage Internals The watcher The suspender Flags Resourc

Dec 27, 2022

A series of controllers for configuring namespaces to accomodate Argo

argo-controller A series of controllers for configuring namespaces to accomodate Argo. ArgoCD TBD Argo Workflows Make a service account in every names

Jan 4, 2022

A Kubernetes operator that allows for automatic provisioning and distribution of cert-manager certs across namespaces

cached-certificate-operator CachedCertificate Workflow When a CachedCertificate is created or updated the operator does the following: Check for a val

Sep 6, 2022

Steampipe plugin to query your Baleen namespaces, custom rules and more

Baleen plugin for Steampipe Use SQL to query namespaces, rules and more from Baleen. Get started → Documentation: Table definitions & examples Quick s

Jun 16, 2022

A little websocket TCP proxy to let browsers talk to a fixed port on arbitrary hosts. Built for Gemini (gemini://, port 1965)

Kepler A little websocket TCP proxy built to let Amfora talk to Gemini servers when running in a browser. Usage $ git clone https://github.com/awfulco

May 27, 2022

Port-proxy - Temporary expose port for remote connections

Port proxy util Temporary expose port for remote connections. E.g. database/wind

Jan 27, 2022

🐺 Garment retains a single connection pool for different database types used inside you application

🐺 Garment retains a single connection pool for different database types used inside you application

Garment A Thread Safe Connection Pooling. Garment retains a single connection pool for different database types used inside you application (MySQL, Re

Nov 9, 2022

A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests

A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests

Naabu is a port scanning tool written in Go that allows you to enumerate valid ports for hosts in a fast and reliable manner. It is a really simple to

Dec 31, 2022

A high-performance concurrent scanner written by go, which can be used for survival detection, tcp port detection, and web service detection.

A high-performance concurrent scanner written by go, which can be used for survival detection, tcp port detection, and web service detection.

aScan A high-performance concurrent scanner written by go, which can be used for survival detection, tcp port detection, and web service detection. Fu

Aug 15, 2022

Least-recently-used-LRU- - Design CacheEvictionPolicy with 2 strategy LRU(Least recently used)

Least-recently-used-LRU- Design CacheEvictionPolicy with 2 strategy LRU(Least re

Jan 4, 2022

2D rendering for different output (raster, pdf, svg)

2D rendering for different output (raster, pdf, svg)

draw2d Package draw2d is a go 2D vector graphics library with support for multiple outputs such as images (draw2d), pdf documents (draw2dpdf), opengl

Dec 25, 2022

A different approach to Go web frameworks

A different approach to Go web frameworks

Note: gongular recently updated, and if you are looking for the previous version it is tagged as v.1.0 gongular is an HTTP Server Framework for develo

Jan 7, 2023

With this package you can create your own syslog server with your own handlers for different kind of syslog messages

Using this library you can easy implement your own syslog server that: Can listen on multiple UDP ports and unix domain sockets. Can pass parsed syslo

Nov 9, 2022

Application for HTTP benchmarking via different rules and configs

Application for HTTP benchmarking via different rules and configs

Go Benchmark App The efficiency and speed of application - our goal and the basic idea. Application for HTTP-benchmarking via different rules and conf

Dec 24, 2022

Creates Prometheus Metrics for PolicyReports and ClusterPolicyReports. It also sends PolicyReportResults to different Targets like Grafana Loki or Slack

Creates Prometheus Metrics for PolicyReports and ClusterPolicyReports. It also sends PolicyReportResults to different Targets like Grafana Loki or Slack

PolicyReporter Motivation Kyverno ships with two types of validation. You can either enforce a rule or audit it. If you don't want to block developers

Aug 6, 2021
Related tags
A port of Rebecca Murphey's js-assessment for Go
A port of Rebecca Murphey's js-assessment for Go

go-assessment Your Job Is To Make The Tests Pass! What is this? This is a tool for assessing or practicing beginner level programming in Golang. It is

Dec 16, 2021
Tis module used as base fo configuration apps.By default, it expands into the inside of the application.

Tis module used as base fo configuration apps.By default, it expands into the inside of the application. Also, module c reads a dictionary of secrets from the application directory by its AppName and extension json.

Dec 7, 2021
Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.
Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.

Hilbert Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. Documentation available here This is not an

Dec 23, 2022
Enforcing per team quota (sum of used resources across all their namespaces) and delegating the per namespace quota to users.

Quota Operator Enforcing per team quota (sum of used resources across all their namespaces) and delegating the per namespace quota to users. Instructi

Nov 9, 2022
Small fan control program using curves

gofan Small fan control program using curves, because fancontrol doesn't work. Usage gofan \ -function EaseInOutCubic -interval 2s \ -pmin 10 -pm

Dec 28, 2021
fast tool for separate existing domains from list of domains using DNS/HTTP.

NETGREP How To Install • How to use Description netgrep can send http/https request or resolve domain from dns (can customize dns server) to separate

Jan 27, 2022
Separate files into folders by extension

Sffae Sffae (stands for Separate files into folders by extension) is a tiny gola

Dec 26, 2021
Executes jobs in separate GO routines. Provides Timeout, StartTime controls. Provides Cancel all running job before new job is run.

jobExecutor Library to execute jobs in GO routines. Provides for Job Timeout/Deadline (MaxDuration()) Job Start WallClock control (When()) Add a job b

Jan 10, 2022
Wrapper for Lightning Network Daemon (lnd). It provides separate accounts with minimum trust for end users.

LndHub.go Wrapper for Lightning Network Daemon (lnd). It provides separate accounts with minimum trust for end users. LndHub compatible API implemente

Dec 21, 2022
CSPFinder is a tool to compare ROI of selling Cash Secure Put options between different tickers for different expiry dates.

CSPFinder is a tool to compare ROI of selling Cash Secure Put options between different tickers for different expiry dates. It is intended to help open new cash secured put positions.

Dec 21, 2021