summary refs log tree commit diff stats
path: root/examples
diff options
context:
space:
mode:
authorMichał Zieliński <michal@zielinscy.org.pl>2015-10-24 08:53:18 +0200
committerMichał Zieliński <michal@zielinscy.org.pl>2015-10-24 22:17:31 +0200
commitba61a8d00a65948fc0b3a1c100a20cca711fdd0f (patch)
treee160d0a04edec991e2dbb02dd1724a5302ed7347 /examples
parent3ebf27ddd24c04e87e33bfb6f8617d81c9fc1946 (diff)
downloadNim-ba61a8d00a65948fc0b3a1c100a20cca711fdd0f.tar.gz
net.nim: support for TLS-PSK ciphersuites
Diffstat (limited to 'examples')
-rw-r--r--examples/ssl/pskclient.nim15
-rw-r--r--examples/ssl/pskserver.nim20
2 files changed, 35 insertions, 0 deletions
diff --git a/examples/ssl/pskclient.nim b/examples/ssl/pskclient.nim
new file mode 100644
index 000000000..7c93bbb61
--- /dev/null
+++ b/examples/ssl/pskclient.nim
@@ -0,0 +1,15 @@
+# Create connection encrypted using preshared key (TLS-PSK).
+import net
+
+static: assert defined(ssl)
+
+let sock = newSocket()
+sock.connect("localhost", Port(8800))
+
+proc clientFunc(identityHint: string): tuple[identity: string, psk: string] =
+  echo "identity hint ", identityHint.repr
+  return ("foo", "psk-of-foo")
+
+let context = newContext(cipherList="PSK-AES256-CBC-SHA")
+context.clientGetPskFunc = clientFunc
+context.wrapConnectedSocket(sock, handshakeAsClient)
diff --git a/examples/ssl/pskserver.nim b/examples/ssl/pskserver.nim
new file mode 100644
index 000000000..859eaa875
--- /dev/null
+++ b/examples/ssl/pskserver.nim
@@ -0,0 +1,20 @@
+# Accept connection encrypted using preshared key (TLS-PSK).
+import net
+
+static: assert defined(ssl)
+
+let sock = newSocket()
+sock.bindAddr(Port(8800))
+sock.listen()
+
+let context = newContext(cipherList="PSK-AES256-CBC-SHA")
+context.pskIdentityHint = "hello"
+context.serverGetPskFunc = proc(identity: string): string = "psk-of-" & identity
+
+while true:
+  var client = new(Socket)
+  sock.accept(client)
+  sock.setSockOpt(OptReuseAddr, true)
+  echo "accepted connection"
+  context.wrapConnectedSocket(client, handshakeAsServer)
+  echo "got connection with identity ", client.getPskIdentity()