summaryrefslogtreecommitdiff
path: root/release/src/router/cyassl/swig/rsasign.py
diff options
context:
space:
mode:
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)
+