-
Notifications
You must be signed in to change notification settings - Fork 14
Description
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));
}`