public void Write(Memory <byte> buffer) { Span <byte> hash = stackalloc byte[PgMD5Helper.PasswordHashLength]; PgMD5Helper.ComputePassword(m_user, m_password, m_salt.Span, hash); var binaryWriter = new BinarySpanWriter(buffer.Span); binaryWriter.WriteByte(FrontendMessageCode.Password); binaryWriter.WriteInt32(sizeof(int) + PgMD5Helper.PasswordHashLength + 1); hash.CopyTo(binaryWriter.Span); binaryWriter.Advance(PgMD5Helper.PasswordHashLength); binaryWriter.WriteByte(0); }
public void Test1() { Span <byte> h = stackalloc byte[PgMD5Helper.PasswordHashLength]; var salt = new byte[] { 1, 2, 3, 4 }; PgMD5Helper.ComputePassword("postgres", "admin", salt, h); var h2 = CalcHash("postgres", "admin", salt); for (var i = 0; i < h.Length; i++) { if (h[i] != h2[i]) { throw new Exception(); } } }