28 lines
588 B
Go
28 lines
588 B
Go
|
package application
|
||
|
|
||
|
import (
|
||
|
"crypto/rsa"
|
||
|
"github.com/yawning/bulb"
|
||
|
"net"
|
||
|
)
|
||
|
|
||
|
// "127.0.0.1:9051" "tcp4"
|
||
|
// "/var/run/tor/control" "unix"
|
||
|
func SetupOnion(torControlAddress string, torControlSocketType string, authentication string, pk *rsa.PrivateKey, onionport uint16) (net.Listener, error) {
|
||
|
c, err := bulb.Dial(torControlSocketType, torControlAddress)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
if err := c.Authenticate(authentication); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
cfg := &bulb.NewOnionConfig{
|
||
|
DiscardPK: true,
|
||
|
PrivateKey: pk,
|
||
|
}
|
||
|
|
||
|
return c.NewListener(cfg, onionport)
|
||
|
}
|