Closed kPatch closed 1 year ago
Class blueprint:
using Aptos.Utilities.BCS; namespace Aptos.Authenticator { public interface IAuthenticator { public bool Verify(byte[] data); public Serialization Serialize(Serialization serializer); } public class Authenticator : IAuthenticator { public const int ED25519 = 1; public const int MULTI_ED25519 = 1; public const int MULTI_AGENT = 2; private int Variant; private readonly IAuthenticator authenticator; public Authenticator(IAuthenticator authenticator) { // TODO: Fix comparison if(authenticator == typeof(Ed25519Authenticator)) { this.Variant = Authenticator.ED25519; } else if (authenticator == typeof(MultiEd25519Authenticator)) { this.Variant = Authenticator.MULTI_ED25519; } else if(authenticator == typeof(MultiAgentAuthenticator)) { this.Variant = Authenticator.MULTI_AGENT; } else { // TODO: Return exception: Invalid type } } // TODO: Review Authenticator serialization implementation public Serialization Serialize(Serialization serializer) { serializer.SerializeU32AsUleb128((uint)this.Variant); //serializer.Serialize(authenticator.Serialize()); Serialization authSerializer = authenticator.Serialize(serializer); byte[] output = authSerializer.GetBytes(); serializer.SerializeFixedBytes(output); return serializer; } public bool Verify(byte[] data) { //throw new System.NotImplementedException(); return this.authenticator.Verify(data); } } public class Ed25519Authenticator : IAuthenticator { public Serialization Serialize(Serialization serializer) { throw new System.NotImplementedException(); } public bool Verify(byte[] data) { throw new System.NotImplementedException(); } } public class MultiAgentAuthenticator : IAuthenticator { public Serialization Serialize(Serialization serializer) { throw new System.NotImplementedException(); } public bool Verify(byte[] data) { throw new System.NotImplementedException(); } } public class MultiEd25519Authenticator : IAuthenticator { public Serialization Serialize(Serialization serializer) { throw new System.NotImplementedException(); } public bool Verify(byte[] data) { throw new System.NotImplementedException(); } } }
ad87db12142c6cff0b4866aceb715b41d3afa60f
Class blueprint: