summaryrefslogtreecommitdiff
path: root/transports/obfs4/statefile.go
diff options
context:
space:
mode:
authorYawning Angel <yawning@torproject.org>2014-08-23 05:33:23 +0000
committerYawning Angel <yawning@torproject.org>2014-08-23 05:33:23 +0000
commit1e574942d586bb26f659f9ebee9ec90d778ecb97 (patch)
tree57fc5d280550da67d710c1dd0a3740a6274f73d0 /transports/obfs4/statefile.go
parent596cc8507340a1233defe5bf88e6e2a400cc7f9f (diff)
Change all the arguments to use base16 from base64.
WARNING: THIS BREAKS BACKWARD COMPATIBILITY. This is primarily to work around bug #12930. Base16 was chosen over unpadded Base64 because the go runtime Base64 decoder does not handle omitting the padding. May $deity have mercy on anyone who needs to hand-enter an obfs4 bridge line because I will not.
Diffstat (limited to 'transports/obfs4/statefile.go')
-rw-r--r--transports/obfs4/statefile.go19
1 files changed, 7 insertions, 12 deletions
diff --git a/transports/obfs4/statefile.go b/transports/obfs4/statefile.go
index e727f7d..378eefa 100644
--- a/transports/obfs4/statefile.go
+++ b/transports/obfs4/statefile.go
@@ -28,7 +28,6 @@
package obfs4
import (
- "encoding/base64"
"encoding/json"
"fmt"
"io/ioutil"
@@ -85,17 +84,13 @@ func serverStateFromJSONServerState(js *jsonServerState) (*obfs4ServerState, err
var err error
st := new(obfs4ServerState)
- if st.nodeID, err = ntor.NodeIDFromBase64(js.NodeID); err != nil {
+ if st.nodeID, err = ntor.NodeIDFromHex(js.NodeID); err != nil {
return nil, err
}
- if st.identityKey, err = ntor.KeypairFromBase64(js.PrivateKey); err != nil {
+ if st.identityKey, err = ntor.KeypairFromHex(js.PrivateKey); err != nil {
return nil, err
}
- var rawSeed []byte
- if rawSeed, err = base64.StdEncoding.DecodeString(js.DrbgSeed); err != nil {
- return nil, err
- }
- if st.drbgSeed, err = drbg.SeedFromBytes(rawSeed); err != nil {
+ if st.drbgSeed, err = drbg.SeedFromHex(js.DrbgSeed); err != nil {
return nil, err
}
@@ -138,10 +133,10 @@ func newJSONServerState(stateDir string, js *jsonServerState) (err error) {
}
// Encode it into JSON format and write the state file.
- js.NodeID = st.nodeID.Base64()
- js.PrivateKey = st.identityKey.Private().Base64()
- js.PublicKey = st.identityKey.Public().Base64()
- js.DrbgSeed = st.drbgSeed.Base64()
+ js.NodeID = st.nodeID.Hex()
+ js.PrivateKey = st.identityKey.Private().Hex()
+ js.PublicKey = st.identityKey.Public().Hex()
+ js.DrbgSeed = st.drbgSeed.Hex()
var encoded []byte
if encoded, err = json.Marshal(js); err != nil {