diff --git a/core/identity.go b/core/identity.go index c13905e..5aacffe 100644 --- a/core/identity.go +++ b/core/identity.go @@ -37,6 +37,7 @@ func CreateIdentity(core *Ricochet) (*Identity, error) { log.Printf("Failed loading identity: %v", err) return nil, err } + log.Println("me: ", me) contactList, err := LoadContactList(core) if err != nil { @@ -46,6 +47,7 @@ func CreateIdentity(core *Ricochet) (*Identity, error) { me.contactList = contactList contactList.StartConnections() + log.Println("me: ", me) go me.publishService(me.privateKey) return me, nil } @@ -53,22 +55,27 @@ func CreateIdentity(core *Ricochet) (*Identity, error) { func (me *Identity) loadIdentity() error { config := me.core.Config.Read() - if keyData := config.Secrets.GetServicePrivateKey(); keyData != nil { - var err error - me.privateKey, _, err = pkcs1.DecodePrivateKeyDER(keyData) - if err != nil { - return err - } - me.address, err = AddressFromKey(&me.privateKey.PublicKey) - if err != nil { - return err - } + keyData := config.Secrets.GetServicePrivateKey(); - log.Printf("Loaded identity %s", me.address) - } else { + if keyData != nil { log.Printf("Initializing new identity") + + privateKey, err := utils.GeneratePrivateKey() } + var err error + me.privateKey, _, err = pkcs1.DecodePrivateKeyDER(keyData) + if err != nil { + return err + } + me.address, err = AddressFromKey(&me.privateKey.PublicKey) + if err != nil { + return err + } + + log.Printf("Loaded identity %s", me.address) + + return nil } @@ -105,6 +112,7 @@ func (me *Identity) setPrivateKey(key *rsa.PrivateKey) error { // BUG(special): No error handling for failures under publishService func (me *Identity) publishService(key *rsa.PrivateKey) { + log.Println("publishService(", key, ")") // This call will block until a control connection is available and the // ADD_ONION command has returned. After creating the listener, it will // be automatically re-published if the control connection is lost and