From 158eb0bed1c7614e7cb002e1f7d9f14ee29a058c Mon Sep 17 00:00:00 2001 From: ffranr Date: Mon, 23 Jan 2023 17:53:42 +0000 Subject: [PATCH] onion_store: remove tor V2 + use new OnionStore The target version of the tor.OnionStore interface methods do not accept onion type as an argument. Further, tor V2 was depreciated in October 2021. We can therefore remove support for tor V2. --- onion_store.go | 55 +++++++++----------------------------------------- 1 file changed, 10 insertions(+), 45 deletions(-) diff --git a/onion_store.go b/onion_store.go index c95cbd1..9db77a9 100644 --- a/onion_store.go +++ b/onion_store.go @@ -2,7 +2,6 @@ package aperture import ( "context" - "fmt" "strings" "github.com/lightningnetwork/lnd/tor" @@ -14,32 +13,15 @@ const ( // related information. onionDir = "onion" - // onionV2Dir is the directory we'll use to store a v2 onion service's - // private key, such that it can be restored after restarts. - onionV2Dir = "v2" - - // onionV2Dir is the directory we'll use to store a v3 onion service's + // onionV3Dir is the directory we'll use to store a v3 onion service's // private key, such that it can be restored after restarts. onionV3Dir = "v3" ) -// onionPath returns the full path to an onion service's private key of the -// given type. -func onionPath(onionType tor.OnionType) (string, error) { - var typeDir string - switch onionType { - case tor.V2: - typeDir = onionV2Dir - case tor.V3: - typeDir = onionV3Dir - default: - return "", fmt.Errorf("unknown onion type %v", onionType) - } - - return strings.Join( - []string{topLevelKey, onionDir, typeDir}, etcdKeyDelimeter, - ), nil -} +// onionPath is the full path to an onion service's private key. +var onionPath = strings.Join( + []string{topLevelKey, onionDir, onionV3Dir}, etcdKeyDelimeter, +) // onionStore is an etcd-based implementation of tor.OnionStore. type onionStore struct { @@ -55,26 +37,14 @@ func newOnionStore(client *clientv3.Client) *onionStore { } // StorePrivateKey stores the given private key. -func (s *onionStore) StorePrivateKey(onionType tor.OnionType, - privateKey []byte) error { - - onionPath, err := onionPath(onionType) - if err != nil { - return err - } - - _, err = s.Client.Put(context.Background(), onionPath, string(privateKey)) +func (s *onionStore) StorePrivateKey(privateKey []byte) error { + _, err := s.Client.Put(context.Background(), onionPath, string(privateKey)) return err } // PrivateKey retrieves a stored private key. If it is not found, then // ErrNoPrivateKey should be returned. -func (s *onionStore) PrivateKey(onionType tor.OnionType) ([]byte, error) { - onionPath, err := onionPath(onionType) - if err != nil { - return nil, err - } - +func (s *onionStore) PrivateKey() ([]byte, error) { resp, err := s.Get(context.Background(), onionPath) if err != nil { return nil, err @@ -87,12 +57,7 @@ func (s *onionStore) PrivateKey(onionType tor.OnionType) ([]byte, error) { } // DeletePrivateKey securely removes the private key from the store. -func (s *onionStore) DeletePrivateKey(onionType tor.OnionType) error { - onionPath, err := onionPath(onionType) - if err != nil { - return err - } - - _, err = s.Client.Delete(context.Background(), onionPath) +func (s *onionStore) DeletePrivateKey() error { + _, err := s.Client.Delete(context.Background(), onionPath) return err }