| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package hysteria2
- import (
- "crypto/sha256"
- "encoding/hex"
- "fmt"
- "github.com/v2fly/v2ray-core/v5/common"
- "github.com/v2fly/v2ray-core/v5/common/protocol"
- )
- // MemoryAccount is an account type converted from Account.
- type MemoryAccount struct {
- Password string
- Key []byte
- }
- // AsAccount implements protocol.AsAccount.
- func (a *Account) AsAccount() (protocol.Account, error) {
- return &MemoryAccount{}, nil
- }
- // Equals implements protocol.Account.Equals().
- func (a *MemoryAccount) Equals(another protocol.Account) bool {
- if account, ok := another.(*MemoryAccount); ok {
- return a.Password == account.Password
- }
- return false
- }
- func hexSha224(password string) []byte {
- buf := make([]byte, 56)
- hash := sha256.New224()
- common.Must2(hash.Write([]byte(password)))
- hex.Encode(buf, hash.Sum(nil))
- return buf
- }
- func hexString(data []byte) string {
- str := ""
- for _, v := range data {
- str += fmt.Sprintf("%02x", v)
- }
- return str
- }
|