#srp #api-bindings #api

go-srp

Rust bindings for https://github.com/ProtonMail/go-srp

7 releases

0.1.6 Sep 13, 2023
0.1.5 May 21, 2023
0.1.3 Mar 3, 2023
0.1.1 Feb 26, 2023

#1979 in #api

Download history 1/week @ 2024-01-29 26/week @ 2024-02-19 19/week @ 2024-02-26 4/week @ 2024-03-11 163/week @ 2024-04-01

167 downloads per month
Used in proton-api-rs

AGPL-3.0-only

15KB
356 lines

Unofficial bindings for the Proton REST API in Rust

This project aims to implement the Proton REST API in Rust. It is all based on the information available from the go-proton-api and the Proton Bridge repositories.

Disclaimer

This is an UNOFFICIAL project and a work in progress. Use the code in this repository at your own risk. The author of this project will not be held liable if data loss occurs or your account gets blocked.

Build Requirements

  • Rust
  • Go >= 1.19

This library currently uses one go library to handle the SRP part of the authentication. While there are srp crates available for rust, to avoid issues with the proton servers, we currently use the library that's used internally by go-proton-api.

Safety

This project currently needs unsafe to interact with the go bindings for srp


lib.rs:

Simple bindings for the go-srp repository. Currently on the client side proof calcultion is exposed by the bindings as it is the only requirement for an account to log in

Building

In order to build this library you need to have go v1.19 or higher installed on your system.

Safety

This library needs unsafe to access the C interface exposed by the go library

Dependencies

~0.2–2MB
~40K SLoC