Esempio n. 1
0
        public static CursorHandshakeWritingContext StartWriting(MemoryCursor cursor)
        {
            HandshakeType.Certificate.WriteBytes(cursor);

            var payloadContext = HandshakeLength.StartWriting(cursor);

            CertificateContext.WriteEmpty(cursor);

            var certificatesContext = ByteVector.StartVectorWriting(cursor, 0..ByteVector.MaxUInt24);

            return(new CursorHandshakeWritingContext(payloadContext, certificatesContext));
        }
Esempio n. 2
0
        public static CursorHandshakeWritingContext StartWriting(MemoryCursor cursor, SignatureScheme scheme)
        {
            HandshakeType.CertificateVerify.WriteBytes(cursor);

            var payloadContext = HandshakeLength.StartWriting(cursor);

            scheme.WriteBytes(cursor);

            var signatureContext = ByteVector.StartVectorWriting(cursor, 0..ushort.MaxValue);

            return(new CursorHandshakeWritingContext(payloadContext, signatureContext));
        }
Esempio n. 3
0
        public static CursorHandshakeWritingContext StartWriting(MemoryCursor cursor,
                                                                 HandshakeRandom random,
                                                                 Cipher cipher,
                                                                 SessionId sessionId)
        {
            HandshakeType.ServerHello.WriteBytes(cursor);

            var payloadContext = HandshakeLength.StartWriting(cursor);

            ProtocolVersion.Tls12.WriteBytes(cursor);
            random.WriteBytes(cursor);
            sessionId.WriteBytes(cursor);
            cipher.WriteBytes(cursor);
            CompressionMethod.WriteEmptyValue(cursor);

            var extensionsContext = ByteVector.StartVectorWriting(cursor, 0..ushort.MaxValue);

            return(new CursorHandshakeWritingContext(payloadContext, extensionsContext));
        }
Esempio n. 4
0
        public static CursorHandshakeWritingContext StartWriting(MemoryCursor cursor,
                                                                 HandshakeRandom random,
                                                                 ReadOnlyMemory <Cipher> ciphers,
                                                                 SessionId sessionId)
        {
            HandshakeType.ClientHello.WriteBytes(cursor);

            var payloadContext = HandshakeLength.StartWriting(cursor);

            ProtocolVersion.Tls12.WriteBytes(cursor);
            random.WriteBytes(cursor);
            sessionId.WriteBytes(cursor);
            CipherSuite.Write(cursor, ciphers);
            CompressionMethod.WriteEmptyList(cursor);

            var extensionsContext = ByteVector.StartVectorWriting(cursor, 0..ushort.MaxValue);

            return(new CursorHandshakeWritingContext(payloadContext, extensionsContext));
        }