summaryrefslogtreecommitdiff
path: root/release/src/router/cyassl/swig/rsasign.py
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2015-01-09 09:46:07 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2015-01-09 09:46:07 +0100
commit5ac03256db0fe4ca7e3ad1117d096c3a76368b76 (patch)
treec767808892cc7f013b87174ad3b31c23508b5fa5 /release/src/router/cyassl/swig/rsasign.py
parentd89b5dc1509c66ccbed1dbc7ed0e09264ea3179e (diff)
downloadtomato-5ac03256db0fe4ca7e3ad1117d096c3a76368b76.tar.gz
tomato-5ac03256db0fe4ca7e3ad1117d096c3a76368b76.tar.bz2
backported CyaSSL/OpenSSL support for internal webserver instead of MatrixSSL
Diffstat (limited to 'release/src/router/cyassl/swig/rsasign.py')
-rw-r--r--release/src/router/cyassl/swig/rsasign.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/release/src/router/cyassl/swig/rsasign.py b/release/src/router/cyassl/swig/rsasign.py
new file mode 100644
index 00000000..ad2e114f
--- /dev/null
+++ b/release/src/router/cyassl/swig/rsasign.py
@@ -0,0 +1,35 @@
+# file: rsasign.py
+
+import cyassl
+
+
+# start Random Number Generator
+rng = cyassl.GetRng()
+if rng == None:
+ print "Couldn't get an RNG"
+ exit(-1)
+
+# load RSA private key in DER format
+key = cyassl.GetRsaPrivateKey("../certs/client-key.der")
+if key == None:
+ print "Couldn't load DER private key file"
+ exit(-1)
+
+# Make byte Arrays and fill input
+signOutput = cyassl.byteArray(128) # 128 allows 1024 bit private key
+signStr = cyassl.byteArray(25) # input can't be larger then key size
+ # 64 for 512 bit 128 for 1024 bit
+cyassl.FillSignStr(signStr, "Everybody gets Friday off", 25)
+
+# Do RSA Sign
+signedSize = cyassl.RsaSSL_Sign(signStr, 25, signOutput, 128, key, rng)
+
+# Show output
+print "Signed Size = ", signedSize, " signed array = ", cyassl.cdata(signOutput, signedSize)
+
+# let's verify this worked
+signVerify = cyassl.byteArray(signedSize)
+verifySize = cyassl.RsaSSL_Verify(signOutput, signedSize, signVerify, signedSize, key)
+
+print "Verify Size = ", verifySize, " verify array = ", cyassl.cdata(signVerify, verifySize)
+