Release 3X-UI for Docker / build (push) Canceled after 0s
Release 3X-UI / build (386) (push) Canceled after 0s
Release 3X-UI / build (amd64) (push) Canceled after 0s
Release 3X-UI / build (arm64) (push) Canceled after 0s
Release 3X-UI / build (armv5) (push) Canceled after 0s
Release 3X-UI / build (armv6) (push) Canceled after 0s
Release 3X-UI / build (armv7) (push) Canceled after 0s
Release 3X-UI / build (s390x) (push) Canceled after 0s
Release 3X-UI / Build for Windows (amd64) (push) Canceled after 0s
Release 3X-UI / Publish rolling dev release (push) Canceled after 0s
44 lines
826 B
Go
44 lines
826 B
Go
// Package pia is a standalone PIA WireGuard control-plane client.
|
|
package pia
|
|
|
|
import (
|
|
"context"
|
|
"net/netip"
|
|
"time"
|
|
)
|
|
|
|
type Region struct {
|
|
ID string
|
|
Name string
|
|
CountryCode string
|
|
Geo bool
|
|
PortForwarding bool
|
|
WireGuard []WireGuardServer
|
|
}
|
|
|
|
type WireGuardServer struct {
|
|
Hostname string
|
|
IP netip.Addr
|
|
}
|
|
|
|
type Token struct {
|
|
Value []byte
|
|
ExpiresAt time.Time
|
|
}
|
|
|
|
type Registration struct {
|
|
PeerIP netip.Prefix
|
|
ServerKey string
|
|
ServerIP netip.Addr
|
|
ServerPort uint16
|
|
DNSServers []netip.Addr
|
|
}
|
|
|
|
type Authenticator interface {
|
|
Authenticate(ctx context.Context, username string, password []byte) (Token, error)
|
|
}
|
|
|
|
type Registrar interface {
|
|
RegisterKey(ctx context.Context, server WireGuardServer, token string, publicKey string) (Registration, error)
|
|
}
|