package crypto import ( "crypto/rand" "lux/proto" ) type LuxKey struct { Type proto.LuxType Id proto.LuxID Key []byte } func (key *LuxKey) NewLuxKey(keyType proto.LuxType) error { key.Type = keyType key.Id = proto.NewLuxID() key.Key = make([]byte, 32) if _, err := rand.Read(key.Key); err != nil { return err } else { return nil } } func (key *LuxKey) Read(rd *proto.LuxBuffer) error { if err := key.Type.Read(rd); err != nil { return err } if err := key.Id.Read(rd); err != nil { return err } _key, err := rd.ReadNext(32) if err != nil { return err } key.Key = _key return nil } func (key *LuxKey) Write(wd *proto.LuxBuffer) { key.Type.Write(wd) key.Id.Write(wd) wd.WriteBytes(key.Key) }