Skip to content

Commit

Permalink
Moved interfaces to their respective files
Browse files Browse the repository at this point in the history
  • Loading branch information
ConnorJarvis committed Sep 22, 2018
1 parent e4a0244 commit 0942a1b
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 67 deletions.
11 changes: 11 additions & 0 deletions aes.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@ import (
"io"
)

type AES interface {
Encrypt([]byte, []byte, []byte) ([]byte, error)
Decrypt([]byte, []byte, []byte) ([]byte, error)
GenerateAESKey(io.Reader) ([]byte, error)
GenerateAESNonce(io.Reader) ([]byte, error)
EncryptHeader(Header, []byte, []byte) ([]byte, error)
DecryptHeader([]byte, []byte, []byte) (*Header, error)
EncryptMessageBody(interface{}, []byte, []byte) ([]byte, error)
DecryptMessageBody([]byte, []byte, []byte, int) (interface{}, error)
}

type aesTools struct {
AES
}
Expand Down
10 changes: 10 additions & 0 deletions chat.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@ import (
"github.com/firstrow/tcp_server"
)

type Chat interface {
InitializeConversation(*string) (*string, error)
InitiateConnection() error
NegotiateNewKeys() error
SendTextMessage(string) error
State() ChatInformation
StartServer()
StartKeyNegotiatingService()
}

type chatTools struct {
Chat
ChatState ChatInformation
Expand Down
22 changes: 22 additions & 0 deletions conversation.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,28 @@ import (
"time"
)

type Conversation interface {
CreateSendKeyInitializers(int) ([]MessageKeyInitializer, error)
CreateReceiveKeyInitializers(int) ([]MessageKeyInitializer, error)
ComputeKeyMessages([]MessageKeyInitializer, []MessageKeyInitializer) ([]MessageKey, error)
State() ConversationInfo
ReceiveMessage(MessageEncrypted) error
GetSendMessageKey(int) (*MessageKey, error)
GetReceiveMessageKey(int) (*MessageKey, error)
GetReceiveMessageKeyInitializer(int) (*MessageKeyInitializer, error)
RemoveReceiveMessageKey(int) error
RemoveSendMessageKey(int) error
HandleNegotiateKeysMessage(*NegotiateKeysMessage) error
HandleTextMessage(*TextMessage) error
PrepareMessage(MessageUnencrypted) (*MessageEncrypted, error)
SendMessage(MessageEncrypted) error
PrepareNegotiateKeysMessage(*[]MessageKeyInitializer, *[]MessageKeyInitializer) error
StartConnection(MessageUnencrypted) error
NegotiateKeys(MessageUnencrypted) error
ReceiveMessageProcessor(chan MessageEncrypted)
StartSendService()
}

type conversationTools struct {
Conversation
ConversationState ConversationInfo
Expand Down
7 changes: 7 additions & 0 deletions curve25519.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ import (
"golang.org/x/crypto/curve25519"
)

type ECDH interface {
GenerateKey(io.Reader) (crypto.PrivateKey, crypto.PublicKey, error)
Marshal(crypto.PublicKey) []byte
Unmarshal([]byte) (crypto.PublicKey, bool)
GenerateSharedSecret(crypto.PrivateKey, crypto.PublicKey) ([]byte, error)
}

type curve25519ECDH struct {
ECDH
}
Expand Down
2 changes: 1 addition & 1 deletion examples/command_line_chat.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tormessage
package main

import (
"bufio"
Expand Down
2 changes: 1 addition & 1 deletion examples/desktop.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tormessage
package main

import (
"fmt"
Expand Down
7 changes: 7 additions & 0 deletions messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ import (
"io"
)

type Messages interface {
EncryptMessage(MessageUnencrypted, MessageKey, rsa.PrivateKey) (*MessageEncrypted, error)
DecryptMessage(MessageEncrypted, MessageKey) (*MessageUnencrypted, error)
SignMessage(io.Reader, rsa.PrivateKey, MessageEncrypted) (*MessageEncrypted, error)
VerifyMessage(io.Reader, rsa.PublicKey, MessageEncrypted) error
}

type messageTools struct {
Messages
}
Expand Down
4 changes: 4 additions & 0 deletions rsa.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import (
"io"
)

type RSA interface {
GenerateRSAKey(io.Reader) (*rsa.PrivateKey, *rsa.PublicKey, error)
}

type rsaTools struct {
RSA
}
Expand Down
65 changes: 0 additions & 65 deletions tormessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,73 +4,8 @@ import (
"crypto"
"crypto/rsa"
"encoding/gob"
"io"
)

type ECDH interface {
GenerateKey(io.Reader) (crypto.PrivateKey, crypto.PublicKey, error)
Marshal(crypto.PublicKey) []byte
Unmarshal([]byte) (crypto.PublicKey, bool)
GenerateSharedSecret(crypto.PrivateKey, crypto.PublicKey) ([]byte, error)
}

type RSA interface {
GenerateRSAKey(io.Reader) (*rsa.PrivateKey, *rsa.PublicKey, error)
}
type AES interface {
Encrypt([]byte, []byte, []byte) ([]byte, error)
Decrypt([]byte, []byte, []byte) ([]byte, error)
GenerateAESKey(io.Reader) ([]byte, error)
GenerateAESNonce(io.Reader) ([]byte, error)
EncryptHeader(Header, []byte, []byte) ([]byte, error)
DecryptHeader([]byte, []byte, []byte) (*Header, error)
EncryptMessageBody(interface{}, []byte, []byte) ([]byte, error)
DecryptMessageBody([]byte, []byte, []byte, int) (interface{}, error)
}

type Messages interface {
EncryptMessage(MessageUnencrypted, MessageKey, rsa.PrivateKey) (*MessageEncrypted, error)
DecryptMessage(MessageEncrypted, MessageKey) (*MessageUnencrypted, error)
SignMessage(io.Reader, rsa.PrivateKey, MessageEncrypted) (*MessageEncrypted, error)
VerifyMessage(io.Reader, rsa.PublicKey, MessageEncrypted) error
}

type Conversation interface {
CreateSendKeyInitializers(int) ([]MessageKeyInitializer, error)
CreateReceiveKeyInitializers(int) ([]MessageKeyInitializer, error)
ComputeKeyMessages([]MessageKeyInitializer, []MessageKeyInitializer) ([]MessageKey, error)
State() ConversationInfo
ReceiveMessage(MessageEncrypted) error
GetSendMessageKey(int) (*MessageKey, error)
GetReceiveMessageKey(int) (*MessageKey, error)
GetReceiveMessageKeyInitializer(int) (*MessageKeyInitializer, error)
RemoveReceiveMessageKey(int) error
RemoveSendMessageKey(int) error
HandleNegotiateKeysMessage(*NegotiateKeysMessage) error
HandleTextMessage(*TextMessage) error
PrepareMessage(MessageUnencrypted) (*MessageEncrypted, error)
SendMessage(MessageEncrypted) error
PrepareNegotiateKeysMessage(*[]MessageKeyInitializer, *[]MessageKeyInitializer) error
StartConnection(MessageUnencrypted) error
NegotiateKeys(MessageUnencrypted) error
ReceiveMessageProcessor(chan MessageEncrypted)
StartSendService()
}

type Chat interface {
InitializeConversation(*string) (*string, error)
InitiateConnection() error
NegotiateNewKeys() error
SendTextMessage(string) error
State() ChatInformation
StartServer()
StartKeyNegotiatingService()
}

type Desktop interface {
StartApp() error
}

type DesktopInformation struct {
Platform string
Chat Chat
Expand Down

0 comments on commit 0942a1b

Please sign in to comment.