Skip to content

pseusys/monocypher-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monocypher-Go

Inspired by pymonocypher.

GO bindings for monocypher.

Originally, a part of SeasideVPN project.

Preamble

Currently, there are no maintained GO bindings for monocypher. The only repository that I could google was demonshreder/monocypher-go one, however it is marked as not maintained. The proposed replacement was HACKERALERT/Monocypher-Go, however this repository is not currently accessible. Its go index page, however, states:

Please note that I will not be adding new Monocypher functions or features, and that I will only fix security issues for this repository.

Well, I will support this repository of mine, if I have free time and also if I can.

Version

The package depends on Monocypher version 4.0.2. As for now, it is the lates version.

Platforms

This module is currently Linux-only and I do not think I will try to support any other platforms right now. However, all contributions are welcome!

Requirements

This repository uses c-for-go for bindings generation. It can normally be installed using this command:

go install github.com/xlab/c-for-go@latest

This package also (surprisingly!) uses CGO.

Generate and Build

The bindings can be generated using make generate command.

Lower and Higher

The package includes the generated C bindings, all of them are public and available in monocypher_internal subpackage.

Also, there are some of the higher-level functions implemented (the ones that I found useful in the Python bindings repository). Feel free to contribute any other high-end bindings you need!

Licences

This repository is published under MIT licence itself. However, do not forget to check the licences of the other libraries it heavily depends on:

  1. Source library code: monocypher licence.
  2. High-level borrowed from: pymonocypher licence.
  3. The generated bindings code: c-for-go generated licence.