itAdd some test cases for damlib. - tordam - A library for peer discovery inside the Tor network Err parazyd.org 70 hgit clone https://git.parazyd.org/tordam URL:https://git.parazyd.org/tordam parazyd.org 70 1Log /git/tordam/log.gph parazyd.org 70 1Files /git/tordam/files.gph parazyd.org 70 1Refs /git/tordam/refs.gph parazyd.org 70 1README /git/tordam/file/README.md.gph parazyd.org 70 1LICENSE /git/tordam/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 77feb15fd76bea2b9b1f1814e85b5279954c992e /git/tordam/commit/77feb15fd76bea2b9b1f1814e85b5279954c992e.gph parazyd.org 70 1parent 827494327cebf6a3bd3c266f8735a91e82d08c1b /git/tordam/commit/827494327cebf6a3bd3c266f8735a91e82d08c1b.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Mon, 12 Mar 2018 12:28:16 +0100 Err parazyd.org 70 i Err parazyd.org 70 iAdd some test cases for damlib. Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i A pkg/damlib/config_test.go | 31 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i A pkg/damlib/crypto_25519_test.go | 82 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i A pkg/damlib/crypto_common_test.go | 38 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i A pkg/damlib/net_test.go | 51 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i A pkg/damlib/tor_test.go | 36 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i Err parazyd.org 70 i5 files changed, 238 insertions(+), 0 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/pkg/damlib/config_test.go b/pkg/damlib/config_test.go /git/tordam/file/pkg/damlib/config_test.go.gph parazyd.org 70 it@@ -0,0 +1,31 @@ Err parazyd.org 70 i+package damlib Err parazyd.org 70 i+ Err parazyd.org 70 i+/* Err parazyd.org 70 i+ * Copyright (c) 2017-2018 Dyne.org Foundation Err parazyd.org 70 i+ * tor-dam is written and maintained by Ivan J. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This file is part of tor-dam Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This source code is free software: you can redistribute it and/or modify Err parazyd.org 70 i+ * it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+ * the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+ * (at your option) any later version. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This software is distributed in the hope that it will be useful, Err parazyd.org 70 i+ * but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+ * GNU General Public License for more details. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * You should have received a copy of the GNU General Public License Err parazyd.org 70 i+ * along with this source code. If not, see . Err parazyd.org 70 i+ */ Err parazyd.org 70 i+ Err parazyd.org 70 i+import ( Err parazyd.org 70 i+ "os" Err parazyd.org 70 i+ "testing" Err parazyd.org 70 i+) Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestMain(m *testing.M) { Err parazyd.org 70 i+ ex := m.Run() Err parazyd.org 70 i+ os.Exit(ex) Err parazyd.org 70 i+} Err parazyd.org 70 1diff --git a/pkg/damlib/crypto_25519_test.go b/pkg/damlib/crypto_25519_test.go /git/tordam/file/pkg/damlib/crypto_25519_test.go.gph parazyd.org 70 it@@ -0,0 +1,82 @@ Err parazyd.org 70 i+package damlib Err parazyd.org 70 i+ Err parazyd.org 70 i+/* Err parazyd.org 70 i+ * Copyright (c) 2017-2018 Dyne.org Foundation Err parazyd.org 70 i+ * tor-dam is written and maintained by Ivan J. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This file is part of tor-dam Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This source code is free software: you can redistribute it and/or modify Err parazyd.org 70 i+ * it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+ * the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+ * (at your option) any later version. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This software is distributed in the hope that it will be useful, Err parazyd.org 70 i+ * but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+ * GNU General Public License for more details. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * You should have received a copy of the GNU General Public License Err parazyd.org 70 i+ * along with this source code. If not, see . Err parazyd.org 70 i+ */ Err parazyd.org 70 i+ Err parazyd.org 70 i+import ( Err parazyd.org 70 i+ "os" Err parazyd.org 70 i+ "testing" Err parazyd.org 70 i+) Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestGenEd25519(t *testing.T) { Err parazyd.org 70 i+ _, _, err := GenEd25519() Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed generating ed25519 key:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ t.Log("Successfully generated ed25519 keypair.") Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestSavePubEd25519(t *testing.T) { Err parazyd.org 70 i+ pk, _, err := GenEd25519() Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed generating ed25519 key:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ err = SavePubEd25519("/tmp/ed25519pub.test", pk) Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed saving pubkey:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ os.Remove("/tmp/ed25519pub.test") Err parazyd.org 70 i+ t.Log("Success saving ed25519 pubkey") Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestSavePrivEd25519(t *testing.T) { Err parazyd.org 70 i+ _, sk, err := GenEd25519() Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed generating ed25519 key:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ err = SavePrivEd25519("/tmp/ed25519priv.test", sk) Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed saving privkey:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ os.Remove("/tmp/ed25519priv.test") Err parazyd.org 70 i+ t.Log("Success saving ed25519 privkey") Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestOnionFromPubkeyEd25519(t *testing.T) { Err parazyd.org 70 i+ pk, _, err := GenEd25519() Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed generating ed25519 key:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ res := OnionFromPubkeyEd25519(pk) Err parazyd.org 70 i+ valid := ValidateOnionAddress(string(res)) Err parazyd.org 70 i+ Err parazyd.org 70 i+ t.Log("Got:", string(res)) Err parazyd.org 70 i+ Err parazyd.org 70 i+ if !valid { Err parazyd.org 70 i+ t.Fatal("Address is invalid.") Err parazyd.org 70 i+ } Err parazyd.org 70 i+ t.Log("Address is valid") Err parazyd.org 70 i+} Err parazyd.org 70 1diff --git a/pkg/damlib/crypto_common_test.go b/pkg/damlib/crypto_common_test.go /git/tordam/file/pkg/damlib/crypto_common_test.go.gph parazyd.org 70 it@@ -0,0 +1,38 @@ Err parazyd.org 70 i+package damlib Err parazyd.org 70 i+ Err parazyd.org 70 i+/* Err parazyd.org 70 i+ * Copyright (c) 2017-2018 Dyne.org Foundation Err parazyd.org 70 i+ * tor-dam is written and maintained by Ivan J. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This file is part of tor-dam Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This source code is free software: you can redistribute it and/or modify Err parazyd.org 70 i+ * it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+ * the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+ * (at your option) any later version. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This software is distributed in the hope that it will be useful, Err parazyd.org 70 i+ * but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+ * GNU General Public License for more details. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * You should have received a copy of the GNU General Public License Err parazyd.org 70 i+ * along with this source code. If not, see . Err parazyd.org 70 i+ */ Err parazyd.org 70 i+ Err parazyd.org 70 i+import ( Err parazyd.org 70 i+ "testing" Err parazyd.org 70 i+) Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestGenRandomASCII(t *testing.T) { Err parazyd.org 70 i+ res, err := GenRandomASCII(18) Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Failed making random string:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ if len(res) != 18 { Err parazyd.org 70 i+ t.Fatal("String is of incorrect length: 18 !=", len(res)) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ t.Log("Got:", res) Err parazyd.org 70 i+} Err parazyd.org 70 1diff --git a/pkg/damlib/net_test.go b/pkg/damlib/net_test.go /git/tordam/file/pkg/damlib/net_test.go.gph parazyd.org 70 it@@ -0,0 +1,51 @@ Err parazyd.org 70 i+package damlib Err parazyd.org 70 i+ Err parazyd.org 70 i+/* Err parazyd.org 70 i+ * Copyright (c) 2017-2018 Dyne.org Foundation Err parazyd.org 70 i+ * tor-dam is written and maintained by Ivan J. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This file is part of tor-dam Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This source code is free software: you can redistribute it and/or modify Err parazyd.org 70 i+ * it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+ * the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+ * (at your option) any later version. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This software is distributed in the hope that it will be useful, Err parazyd.org 70 i+ * but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+ * GNU General Public License for more details. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * You should have received a copy of the GNU General Public License Err parazyd.org 70 i+ * along with this source code. If not, see . Err parazyd.org 70 i+ */ Err parazyd.org 70 i+ Err parazyd.org 70 i+import ( Err parazyd.org 70 i+ "io/ioutil" Err parazyd.org 70 i+ "testing" Err parazyd.org 70 i+) Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestHTTPPost(t *testing.T) { Err parazyd.org 70 i+ data := []byte("foobar") Err parazyd.org 70 i+ Err parazyd.org 70 i+ resp, err := HTTPPost("https://requestb.in/ykdug2yk", data) Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Unable to HTTPPost:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ res, err := ioutil.ReadAll(resp.Body) Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Unable to read response:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ t.Log("Got:", string(res)) Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestHTTPDownload(t *testing.T) { Err parazyd.org 70 i+ data, err := HTTPDownload("https://requestb.in/ykdug2yk") Err parazyd.org 70 i+ if err != nil { Err parazyd.org 70 i+ t.Fatal("Unable to HTTPDownload:", err.Error()) Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ t.Log("Got:", string(data)) Err parazyd.org 70 i+} Err parazyd.org 70 1diff --git a/pkg/damlib/tor_test.go b/pkg/damlib/tor_test.go /git/tordam/file/pkg/damlib/tor_test.go.gph parazyd.org 70 it@@ -0,0 +1,36 @@ Err parazyd.org 70 i+package damlib Err parazyd.org 70 i+ Err parazyd.org 70 i+/* Err parazyd.org 70 i+ * Copyright (c) 2017-2018 Dyne.org Foundation Err parazyd.org 70 i+ * tor-dam is written and maintained by Ivan J. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This file is part of tor-dam Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This source code is free software: you can redistribute it and/or modify Err parazyd.org 70 i+ * it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+ * the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+ * (at your option) any later version. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * This software is distributed in the hope that it will be useful, Err parazyd.org 70 i+ * but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+ * GNU General Public License for more details. Err parazyd.org 70 i+ * Err parazyd.org 70 i+ * You should have received a copy of the GNU General Public License Err parazyd.org 70 i+ * along with this source code. If not, see . Err parazyd.org 70 i+ */ Err parazyd.org 70 i+ Err parazyd.org 70 i+import ( Err parazyd.org 70 i+ "strings" Err parazyd.org 70 i+ "testing" Err parazyd.org 70 i+) Err parazyd.org 70 i+ Err parazyd.org 70 i+func TestFetchHSPubkey(t *testing.T) { Err parazyd.org 70 i+ pubkey := FetchHSPubkey("szpvqtyw3vbgzb3s.onion") Err parazyd.org 70 i+ Err parazyd.org 70 i+ if !strings.HasPrefix(pubkey, "-----BEGIN") { Err parazyd.org 70 i+ t.Fatal("Did not get a public key.") Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ t.Log("Got:", pubkey) Err parazyd.org 70 i+} Err parazyd.org 70 .