nim-chat-poc/src/chat_sdk/identity.nim

35 lines
722 B
Nim
Raw Normal View History

2025-07-05 14:54:19 -07:00
import crypto
import utils
2025-07-16 16:17:22 -07:00
import results
2025-07-05 14:54:19 -07:00
type
Identity* = object
name: string
2025-07-16 16:17:22 -07:00
privateKey: PrivateKey
2025-07-05 14:54:19 -07:00
#################################################
# Constructors
#################################################
proc createIdentity*(name: string): Identity =
2025-07-16 16:17:22 -07:00
let privKey = createRandomKey().get()
result = Identity(name: name, privateKey: privKey)
2025-07-05 14:54:19 -07:00
#################################################
# Parameter Access
#################################################
2025-07-16 16:17:22 -07:00
proc getPubkey*(self: Identity): PublicKey =
result = self.privateKey.getPublicKey()
2025-07-05 14:54:19 -07:00
2025-07-16 16:17:22 -07:00
proc getAddr*(self: Identity): string =
result = get_addr(self.getPubKey())
2025-07-05 14:54:19 -07:00
2025-08-15 07:31:19 -07:00
proc getId*(self: Identity): string =
result = self.name