Skip to content

Pure dart dtls #166

@vincent-iQontrol

Description

@vincent-iQontrol

Is it possible to use just pure dart for DTLS instead of openssl like this:

`
import 'dart:io';
import 'dart:async';

Future createDtlsConnection() async {
// Create a SecurityContext object
final securityContext = SecurityContext();
securityContext.setAlpnProtocols(['dtls1.2'], true);
securityContext.setPSKIdentity("client_identity");
securityContext.setPSK("client_secret".codeUnits);

// Create a SecureSocket object
final socket = await SecureSocket.connect(
'dtls.example.com', 
8443, 
context: securityContext,
);

// Send and receive data over the socket
socket.write('Hello, DTLS!');
final response = await socket.read();
print(String.fromCharCodes(response));

}
`

or

`import 'dart:io';
import 'dart:async';

Future createDtlsConnection() async {
// Load the certificate and private key from files
final certificate = await File('path/to/certificate.pem').readAsString();
final privateKey = await File('path/to/private_key.pem').readAsString();
final caCertificate = await File('path/to/ca_certificate.pem').readAsString();

// Create a SecurityContext object
final securityContext = SecurityContext();
securityContext.useCertificateChainBytes(certificate.codeUnits);
securityContext.usePrivateKeyBytes(privateKey.codeUnits);
securityContext.setTrustedCertificatesBytes(caCertificate.codeUnits);

// Create a SecureSocket object
final socket = await SecureSocket.connect(
'dtls.example.com',
8443,
context: securityContext,
);

// Send and receive data over the socket
socket.write('Hello, DTLS!');
final response = await socket.read();
print(String.fromCharCodes(response));
}`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions