A library providing an ACN (Anonymous Communication Network) abstraction and a tor (for now) implementation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Dan Ballard 2f3860eb89
continuous-integration/drone/pr Build is passing Details
drone use go 1.19.1
12 months ago
testing drone use go 1.19.1 12 months ago
tor drone use go 1.19.1 12 months ago
.drone.yml drone use go 1.19.1 12 months ago
.gitignore Add Lock to ReplaceACN. Minor Drone fixups 2 years ago
LICENSE import libricochet-go connectivity package as stand alone repo 4 years ago
README.md Sketch of Tor Authenticator 3 years ago
acn.go Get x Callbacks 1 year ago
error_acn.go Get x Callbacks 1 year ago
go.mod Upgrade Dependencies. Prevent socks default behaviour in bine 1 year ago
go.sum Upgrade Dependencies. Prevent socks default behaviour in bine 1 year ago
localProvider.go Get x Callbacks 1 year ago
proxy_acn.go Get x Callbacks 1 year ago

README.md

connectivity

A library providing an ACN (Anonymous Communication Network ) networking abstraction

Supported ACNs

  • Tor v3 Onion Services

Requirements for ACN Support

  • Reference an EndPoint via a string / hostname
  • Maintain an endpoint via a PublicKey (the underlying crypto is the responsibility of the implementation)

Using

Each ACN implementation provides a specific start function that takes in the required parameters to e.g. find a specific binary on the system, attempt to talk to a specific system service or launch an in-memory networking manager:

    acn, err := NewTorACN(".", "", 9051, HashedPasswordAuthenticator{"examplehasedpassword"})
    if err != nil {
        t.Error(err)
        return
    }

At this point the ACN is responsible for setting up the networking interface, the result of which can be checked via the Status callback:

    acn.SetStatusCallback(getStatusCallback(progChan))

    progress := 0
    for progress < 100 {
        progress = <-progChan
    }

Once initialized the ACN can be used to open new connections:

    conn,err := acn.Open(hostname);

Or host a service on the ACN:

    ls,err := acn.Listen(identity, port) ;

We also provide closing and restart functionality for managing the networking service:

    acn.Restart()

and

    acn.Close()