private static PublicKey FromRawDataStream(MemoryStream stream) { using (var reader = new NearBinaryReader(stream, true)) { KeyType keyType; switch ((int)reader.ReadByte()) { case 0: { keyType = KeyType.Ed25519; break; } default: { throw new NotSupportedException("Invalid key type in raw bytes for public key"); } } var data = new ByteArray32 { Buffer = reader.ReadBytes(32) }; return(new PublicKey(keyType, data)); } }
public KeyPairEd25519(string secretKey) { var publicKeyFromSeed = Ed25519.Ed25519.PublicKeyFromSeed(Base58.Decode(secretKey)); var publicKeyFromSeed32 = new ByteArray32 { Buffer = publicKeyFromSeed }; _publicKey = new PublicKey(KeyType.Ed25519, publicKeyFromSeed32); _secretKey = secretKey; _expandedSecretKey = Ed25519.Ed25519.ExpandedPrivateKeyFromSeed(Base58.Decode(secretKey)); }
public PublicKey(string encodedKey) { var parts = encodedKey.Split(':'); switch (parts.Length) { case 1: { var decodeData = Base58.Decode(parts[0]); if (decodeData.Length != ByteArray32.BufferLength) { throw new ArgumentException("Invalid encoded key"); } var byteArray32 = new ByteArray32 { Buffer = decodeData }; _keyType = KeyType.Ed25519; _data = byteArray32; break; } case 2: { var decodeData = Base58.Decode(parts[1]); if (decodeData.Length != 32) { throw new ArgumentException("Invalid encoded key"); } var byteArray32 = new ByteArray32 { Buffer = decodeData }; _keyType = KeyTypeConverter.StringToKeyType(parts[0]); _data = byteArray32; break; } default: throw new NotSupportedException("Invalid encoded key format, must be '<curve>:<encoded key>'"); } }
public PublicKey(KeyType keyType, ByteArray32 data) { _keyType = keyType; _data = data; }