In-Class lab – RSA
Table of Contents
RSA key generation (ssh-keygen) 2
Login to Kali with key pairs (Linux/Windows/Mac) 4
RSA key generation (openssl) 5
RSA keypair verification (openssl) 7
RSA key generation (CyberChef) 10
RSA singing message (CyberChef) 11
RSA verifying message (cyberchef) 12
RSA key generation (ssh-keygen)
ssh-keygen –help
ssh-keygen: illegal option — –
usage: ssh-keygen [-q] [-b bits] [-C comment] [-f output_keyfile] [-m format]
[-N new_passphrase] [-t dsa | ecdsa | ed25519 | rsa]
ssh-keygen -p [-f keyfile] [-m format] [-N new_passphrase]
[-P old_passphrase]
ssh-keygen -i [-f input_keyfile] [-m key_format]
ssh-keygen -e [-f input_keyfile] [-m key_format]
ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-C comment] [-f keyfile] [-P passphrase]
ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
ssh-keygen -B [-f input_keyfile]
ssh-keygen -D pkcs11
ssh-keygen -F hostname [-lv] [-f known_hosts_file]
ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file]
ssh-keygen -r hostname [-g] [-f input_keyfile]
ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
ssh-keygen -f input_file -T output_file [-v] [-a rounds] [-J num_lines]
[-j start_line] [-K checkpt] [-W generator]
ssh-keygen -I certificate_identity -s ca_key [-hU] [-D pkcs11_provider]
[-n principals] [-O option] [-V validity_interval]
[-z serial_number] file …
ssh-keygen -L [-f input_keyfile]
ssh-keygen -A [-f prefix_path]
ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
file …
ssh-keygen -Q -f krl_file file …
ssh-keygen -Y check-novalidate -n namespace -s signature_file
ssh-keygen -Y sign -f key_file -n namespace file …
ssh-keygen -Y verify -f allowed_signers_file -I signer_identity
-n namespace -s signature_file [-r revocation_file]
# generating 1024 bits key, by default it may be larger
% ssh-keygen -b 1024
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/frank/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/frank/.ssh/id_rsa.
Your public key has been saved in /Users/frank/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wb8FgZGMXZv8MGRR9f2FFGPpxXjLJehI65wtXsrXdT4 frank@F148.local
The key’s randomart image is:
+—[RSA 1024]—-+
| +.=*o.o*= |
| ..=+.+.o++*|
| o.B+ .o+*|
| oo=. .oo|
| So.oo .|
| =oo o|
| o.+ . o.|
| + . .E.|
| . .|
+—-[SHA256]—–+
% cat ~/.ssh/id_rsa
—–BEGIN OPENSSH PRIVATE KEY—–
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAIEAqSPJjvcqx4oASCZvR1sfC5ZRBbx0rJYFDbuzAVIOIvg23xF4RgLf
7fFslvMYURTDLAgyT6K42Jo0yvwQjOWw1UG89L5R7tqN5+uvT3h1n3wY64DHKoIx0DYUId
qTcBKBaMl4T6qLQ0LtX+xu01zaMG7du6U988IqN6UsOusqKZUAAAII6EDDwehAw8EAAAAH
c3NoLXJzYQAAAIEAqSPJjvcqx4oASCZvR1sfC5ZRBbx0rJYFDbuzAVIOIvg23xF4RgLf7f
FslvMYURTDLAgyT6K42Jo0yvwQjOWw1UG89L5R7tqN5+uvT3h1n3wY64DHKoIx0DYUIdqT
cBKBaMl4T6qLQ0LtX+xu01zaMG7du6U988IqN6UsOusqKZUAAAADAQABAAAAgCs0phcsEj
R4jwvfLYvXvf1yv22sr00q4U2Zxecvc8cBCts+li+kKlmY0zlYDb0ghZ6o1Vk8YuWJtrSn
YP7s6ZeV5UzENU6hyJ5JAL0pWy3sdMeULOnbhoWGPo4xvtOOJTHdDFRz02NhWXGCWDRCTa
4NHGsFK0+XwtqbhCBjOmmhAAAAQEsVEcy1BxOqV/GsGP5KoRcUJ7pPdyJGgRfOFq3mr6cH
tNhj0wtpsZ+9nw96TdvXyEsK1lcNeDY6RJq2faAfE2sAAABBANUUatDNvJKcA/VT6i8t3M
Cd6lB3p7MKt+a/N3A2GpPI5D3g7FU38Q/TZA2ZQ9q5nlFjWJ6JL/6GPqqmKfwX2zkAAABB
AMs1lIhUVeTtObWQtzP1VWbMjiYx93qZO3BQnKrZi2365jm/J4Joe1asRHLVJ10HvysBD0
eB+A+iSOshAQ45VT0AAAAQZnJhbmtARjE0OC5sb2NhbAECAw==
—–END OPENSSH PRIVATE KEY—–
% cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCpI8mO9yrHigBIJm9HWx8LllEFvHSslgUNu7MBUg4i+DbfEXhGAt/t8WyW8xhRFMMsCDJPorjYmjTK/BCM5bDVQbz0vlHu2o3n669PeHWffBjrgMcqgjHQNhQh2pNwEoFoyXhPqotDQu1f7G7TXNowbt27pT3zwio3pSw66yoplQ==
Login to Kali with key pairs (Linux/Windows/Mac)
Ref to
https://www.ssh.com/ssh/authorized_keys/openssh
And add your trusted public key into your Kali server
Remote into Kali without password
Windows Users:
Convert Private key to PPK
https://www.ssh.com/ssh/putty/windows/puttygen
“LOAD” private key you generated, and save as PPK
Load ppk file via SSH/Auth option
RSA key generation (openssl)
% openssl -h
openssl:Error: ‘-h’ is an invalid command.
Standard commands
asn1parse ca certhash ciphers
crl crl2pkcs7 dgst dh
dhparam dsa dsaparam ec
ecparam enc errstr gendh
gendsa genpkey genrsa nseq
ocsp passwd pkcs12 pkcs7
pkcs8 pkey pkeyparam pkeyutl
prime rand req rsa
rsautl s_client s_server s_time
sess_id smime speed spkac
ts verify version x509
Message Digest commands (see the `dgst’ command for more details)
gost-mac md4 md5 md_gost94
ripemd160 sha1 sha224 sha256
sha384 sha512 streebog256 streebog512
whirlpool
Cipher commands (see the `enc’ command for more details)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
aes-256-cbc aes-256-ecb base64 bf
bf-cbc bf-cfb bf-ecb bf-ofb
camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
camellia-256-cbc camellia-256-ecb cast cast-cbc
cast5-cbc cast5-cfb cast5-ecb cast5-ofb
chacha des des-cbc des-cfb
des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb
des-ede3-ofb des-ofb des3 desx
rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
rc2-cfb rc2-ecb rc2-ofb rc4
rc4-40
% openssl rsa help
unknown option ‘help’
usage: rsa [-ciphername] [-check] [-in file] [-inform fmt]
[-modulus] [-noout] [-out file] [-outform fmt] [-passin src]
[-passout src] [-pubin] [-pubout] [-sgckey] [-text]
-check Check consistency of RSA private key
-in file Input file (default stdin)
-inform format Input format (DER, NET or PEM (default))
-modulus Print the RSA key modulus
-noout Do not print encoded version of the key
-out file Output file (default stdout)
-outform format Output format (DER, NET or PEM (default PEM))
-passin src Input file passphrase source
-passout src Output file passphrase source
-pubin Expect a public key (default private key)
-pubout Output a public key (default private key)
-sgckey Use modified NET algorithm for IIS and SGC keys
-text Print in plain text in addition to encoded
# generate RSA PRIVATE KEY of 1024 bit
frank@F148 Desktop % openssl genrsa -out private.pem 1024
Generating RSA private key, 1024 bit long modulus
……………………………………………………++++++
………………………………++++++
e is 65537 (0x10001)
% cat private.pem
—–BEGIN RSA PRIVATE KEY—–
MIICXAIBAAKBgQC8hPD6d6Vo80h2XyyEj6zHWiBLs+QEGTtfFO18s9GcfUlAV5Ow
k7DfK9f62QLYE7LzslwW2i+lTBlfHs2U+nC+3sMCOLdu0wcMZGATREiXJo1ixkPg
PVvNk16iTf8Hx1n4HSDsuaLpOQXqcik4tS6l2lxEoIjClyI0XMQ81V5RJQIDAQAB
AoGAT0qnROIAG6WAC/G5+sOni23X+Z9fP24Rb8uQnAvSFT0JC1wKjZGBKkz5mdOf
A509foy9eQsqUR8x6LU/CPNRaez5/IuWkJO8ZhfPkmmy8DEc2FFrCTM094GIAIAM
x/sl2r786pOxgvn/QCswSRbUB3OjZmJSMga/fW3tRvLwTN0CQQDyfKjTVG0dCkt+
CGbxOc/ZZNR0WQ6javY4kjKPPNGmV2BbUSWsogXEZ6SOQZKPy2booscs4PAlD9JL
XU2Ql177AkEAxwZf4eX9r8/EqLwVZ+nTdTHncju0OU56Ee1Nq4876l26fhCpWqll
vXbnPa3vpxc8wWxs1vUiXwmkaVN/cLGWXwJASkcLQ+jJn6qmo02ZkuzdkT8EoTsi
c8Zw87U8zYmYwrZjKrW5r57V22rQCk9lwKxSspIiJsokZYXqKfHDr7XefwJBAMID
nc6qFI6hvLU8fKWK1L9HQbcjKoI+1VLKgU+/1omWiyk/dshRoEN9ONjwyVGannh0
CPnXh4Ub8jFW20HxbIMCQCIXvY2n/T1HFwjKr3kLB+0B9iL5s+GZgrSF/LN7Bec4
nPRlIGufcWqvT8u1bBr+aFLnCmVRUKwuXzuGdi2/j7Y=
—–END RSA PRIVATE KEY—–
# generate RSA public KEY from private key
% openssl rsa -in private.pem -outform PEM -pubout -out public.pem
writing RSA key
frank@F148 Desktop % cat public.pem
—–BEGIN PUBLIC KEY—–
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8hPD6d6Vo80h2XyyEj6zHWiBL
s+QEGTtfFO18s9GcfUlAV5Owk7DfK9f62QLYE7LzslwW2i+lTBlfHs2U+nC+3sMC
OLdu0wcMZGATREiXJo1ixkPgPVvNk16iTf8Hx1n4HSDsuaLpOQXqcik4tS6l2lxE
oIjClyI0XMQ81V5RJQIDAQAB
—–END PUBLIC KEY—–
RSA keypair verification (openssl)
# show all variables in private key
% openssl rsa -in private.pem -text
Private-Key: (1024 bit)
modulus:
00:bc:84:f0:fa:77:a5:68:f3:48:76:5f:2c:84:8f:
ac:c7:5a:20:4b:b3:e4:04:19:3b:5f:14:ed:7c:b3:
d1:9c:7d:49:40:57:93:b0:93:b0:df:2b:d7:fa:d9:
02:d8:13:b2:f3:b2:5c:16:da:2f:a5:4c:19:5f:1e:
cd:94:fa:70:be:de:c3:02:38:b7:6e:d3:07:0c:64:
60:13:44:48:97:26:8d:62:c6:43:e0:3d:5b:cd:93:
5e:a2:4d:ff:07:c7:59:f8:1d:20:ec:b9:a2:e9:39:
05:ea:72:29:38:b5:2e:a5:da:5c:44:a0:88:c2:97:
22:34:5c:c4:3c:d5:5e:51:25
publicExponent: 65537 (0x10001)
privateExponent:
4f:4a:a7:44:e2:00:1b:a5:80:0b:f1:b9:fa:c3:a7:
8b:6d:d7:f9:9f:5f:3f:6e:11:6f:cb:90:9c:0b:d2:
15:3d:09:0b:5c:0a:8d:91:81:2a:4c:f9:99:d3:9f:
03:9d:3d:7e:8c:bd:79:0b:2a:51:1f:31:e8:b5:3f:
08:f3:51:69:ec:f9:fc:8b:96:90:93:bc:66:17:cf:
92:69:b2:f0:31:1c:d8:51:6b:09:33:34:f7:81:88:
00:80:0c:c7:fb:25:da:be:fc:ea:93:b1:82:f9:ff:
40:2b:30:49:16:d4:07:73:a3:66:62:52:32:06:bf:
7d:6d:ed:46:f2:f0:4c:dd
prime1:
00:f2:7c:a8:d3:54:6d:1d:0a:4b:7e:08:66:f1:39:
cf:d9:64:d4:74:59:0e:a3:6a:f6:38:92:32:8f:3c:
d1:a6:57:60:5b:51:25:ac:a2:05:c4:67:a4:8e:41:
92:8f:cb:66:e8:a2:c7:2c:e0:f0:25:0f:d2:4b:5d:
4d:90:97:5e:fb
prime2:
00:c7:06:5f:e1:e5:fd:af:cf:c4:a8:bc:15:67:e9:
d3:75:31:e7:72:3b:b4:39:4e:7a:11:ed:4d:ab:8f:
3b:ea:5d:ba:7e:10:a9:5a:a9:65:bd:76:e7:3d:ad:
ef:a7:17:3c:c1:6c:6c:d6:f5:22:5f:09:a4:69:53:
7f:70:b1:96:5f
exponent1:
4a:47:0b:43:e8:c9:9f:aa:a6:a3:4d:99:92:ec:dd:
91:3f:04:a1:3b:22:73:c6:70:f3:b5:3c:cd:89:98:
c2:b6:63:2a:b5:b9:af:9e:d5:db:6a:d0:0a:4f:65:
c0:ac:52:b2:92:22:26:ca:24:65:85:ea:29:f1:c3:
af:b5:de:7f
exponent2:
00:c2:03:9d:ce:aa:14:8e:a1:bc:b5:3c:7c:a5:8a:
d4:bf:47:41:b7:23:2a:82:3e:d5:52:ca:81:4f:bf:
d6:89:96:8b:29:3f:76:c8:51:a0:43:7d:38:d8:f0:
c9:51:9a:9e:78:74:08:f9:d7:87:85:1b:f2:31:56:
db:41:f1:6c:83
coefficient:
22:17:bd:8d:a7:fd:3d:47:17:08:ca:af:79:0b:07:
ed:01:f6:22:f9:b3:e1:99:82:b4:85:fc:b3:7b:05:
e7:38:9c:f4:65:20:6b:9f:71:6a:af:4f:cb:b5:6c:
1a:fe:68:52:e7:0a:65:51:50:ac:2e:5f:3b:86:76:
2d:bf:8f:b6
writing RSA key
—–BEGIN RSA PRIVATE KEY—–
MIICXAIBAAKBgQC8hPD6d6Vo80h2XyyEj6zHWiBLs+QEGTtfFO18s9GcfUlAV5Ow
k7DfK9f62QLYE7LzslwW2i+lTBlfHs2U+nC+3sMCOLdu0wcMZGATREiXJo1ixkPg
PVvNk16iTf8Hx1n4HSDsuaLpOQXqcik4tS6l2lxEoIjClyI0XMQ81V5RJQIDAQAB
AoGAT0qnROIAG6WAC/G5+sOni23X+Z9fP24Rb8uQnAvSFT0JC1wKjZGBKkz5mdOf
A509foy9eQsqUR8x6LU/CPNRaez5/IuWkJO8ZhfPkmmy8DEc2FFrCTM094GIAIAM
x/sl2r786pOxgvn/QCswSRbUB3OjZmJSMga/fW3tRvLwTN0CQQDyfKjTVG0dCkt+
CGbxOc/ZZNR0WQ6javY4kjKPPNGmV2BbUSWsogXEZ6SOQZKPy2booscs4PAlD9JL
XU2Ql177AkEAxwZf4eX9r8/EqLwVZ+nTdTHncju0OU56Ee1Nq4876l26fhCpWqll
vXbnPa3vpxc8wWxs1vUiXwmkaVN/cLGWXwJASkcLQ+jJn6qmo02ZkuzdkT8EoTsi
c8Zw87U8zYmYwrZjKrW5r57V22rQCk9lwKxSspIiJsokZYXqKfHDr7XefwJBAMID
nc6qFI6hvLU8fKWK1L9HQbcjKoI+1VLKgU+/1omWiyk/dshRoEN9ONjwyVGannh0
CPnXh4Ub8jFW20HxbIMCQCIXvY2n/T1HFwjKr3kLB+0B9iL5s+GZgrSF/LN7Bec4
nPRlIGufcWqvT8u1bBr+aFLnCmVRUKwuXzuGdi2/j7Y=
—–END RSA PRIVATE KEY—–
# show variables of public key
% openssl rsa -pubin -in public.pem -text
Public-Key: (1024 bit)
Modulus:
00:bc:84:f0:fa:77:a5:68:f3:48:76:5f:2c:84:8f:
ac:c7:5a:20:4b:b3:e4:04:19:3b:5f:14:ed:7c:b3:
d1:9c:7d:49:40:57:93:b0:93:b0:df:2b:d7:fa:d9:
02:d8:13:b2:f3:b2:5c:16:da:2f:a5:4c:19:5f:1e:
cd:94:fa:70:be:de:c3:02:38:b7:6e:d3:07:0c:64:
60:13:44:48:97:26:8d:62:c6:43:e0:3d:5b:cd:93:
5e:a2:4d:ff:07:c7:59:f8:1d:20:ec:b9:a2:e9:39:
05:ea:72:29:38:b5:2e:a5:da:5c:44:a0:88:c2:97:
22:34:5c:c4:3c:d5:5e:51:25
Exponent: 65537 (0x10001)
writing RSA key
—–BEGIN PUBLIC KEY—–
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8hPD6d6Vo80h2XyyEj6zHWiBL
s+QEGTtfFO18s9GcfUlAV5Owk7DfK9f62QLYE7LzslwW2i+lTBlfHs2U+nC+3sMC
OLdu0wcMZGATREiXJo1ixkPgPVvNk16iTf8Hx1n4HSDsuaLpOQXqcik4tS6l2lxE
oIjClyI0XMQ81V5RJQIDAQAB
—–END PUBLIC KEY—–
# show modulus of private key
% openssl rsa -modulus -noout -in private.pem
Modulus=BC84F0FA77A568F348765F2C848FACC75A204BB3E404193B5F14ED7CB3D19C7D49405793B093B0DF2BD7FAD902D813B2F3B25C16DA2FA54C195F1ECD94FA70BEDEC30238B76ED3070C646013444897268D62C643E03D5BCD935EA24DFF07C759F81D20ECB9A2E93905EA722938B52EA5DA5C44A088C29722345CC43CD55E5125
# show modulus of private key
% openssl rsa -modulus -noout -pubin -in public.pem
Modulus=BC84F0FA77A568F348765F2C848FACC75A204BB3E404193B5F14ED7CB3D19C7D49405793B093B0DF2BD7FAD902D813B2F3B25C16DA2FA54C195F1ECD94FA70BEDEC30238B76ED3070C646013444897268D62C643E03D5BCD935EA24DFF07C759F81D20ECB9A2E93905EA722938B52EA5DA5C44A088C29722345CC43CD55E5125
# get the digested of output
% openssl rsa -modulus -noout -pubin -in public.pem | shasum
8e65109b55fd2319631d3f0d6a74f5b9b7a86040 –
% openssl rsa -modulus -noout -in private.pem | shasum
8e65109b55fd2319631d3f0d6a74f5b9b7a86040 –
# the private key / public key pair matches
RSA key generation (CyberChef)
PEM format
JSON format (showing P/Q/d,e)
Task:
Cross validate the key pair from Cyberchef using openssl
RSA singing message (CyberChef)
Sign the message
“EH21”
Using the private key
—–BEGIN RSA PRIVATE KEY—–
MIICXAIBAAKBgQC8hPD6d6Vo80h2XyyEj6zHWiBLs+QEGTtfFO18s9GcfUlAV5Ow
k7DfK9f62QLYE7LzslwW2i+lTBlfHs2U+nC+3sMCOLdu0wcMZGATREiXJo1ixkPg
PVvNk16iTf8Hx1n4HSDsuaLpOQXqcik4tS6l2lxEoIjClyI0XMQ81V5RJQIDAQAB
AoGAT0qnROIAG6WAC/G5+sOni23X+Z9fP24Rb8uQnAvSFT0JC1wKjZGBKkz5mdOf
A509foy9eQsqUR8x6LU/CPNRaez5/IuWkJO8ZhfPkmmy8DEc2FFrCTM094GIAIAM
x/sl2r786pOxgvn/QCswSRbUB3OjZmJSMga/fW3tRvLwTN0CQQDyfKjTVG0dCkt+
CGbxOc/ZZNR0WQ6javY4kjKPPNGmV2BbUSWsogXEZ6SOQZKPy2booscs4PAlD9JL
XU2Ql177AkEAxwZf4eX9r8/EqLwVZ+nTdTHncju0OU56Ee1Nq4876l26fhCpWqll
vXbnPa3vpxc8wWxs1vUiXwmkaVN/cLGWXwJASkcLQ+jJn6qmo02ZkuzdkT8EoTsi
c8Zw87U8zYmYwrZjKrW5r57V22rQCk9lwKxSspIiJsokZYXqKfHDr7XefwJBAMID
nc6qFI6hvLU8fKWK1L9HQbcjKoI+1VLKgU+/1omWiyk/dshRoEN9ONjwyVGannh0
CPnXh4Ub8jFW20HxbIMCQCIXvY2n/T1HFwjKr3kLB+0B9iL5s+GZgrSF/LN7Bec4
nPRlIGufcWqvT8u1bBr+aFLnCmVRUKwuXzuGdi2/j7Y=
—–END RSA PRIVATE KEY—–
Convert the output to HEX bytes
50 5f 7a 6f 10 78 7c 3f 82 ab e7 be d6 ed 9e b5 98 57 b6 fc db e7 e8 8d a0 6a 9d c2 93 5a 41 ae 16 08 06 e2 04 8b a2 f7 e2 39 f6 df 12 b3 7d bc 18 76 9b 30 08 77 fc 45 0a c0 4a f9 55 e8 f6 5d aa ff b4 dd b0 85 30 fc 59 dc c6 54 2b 6e 48 16 86 76 97 16 24 0e 18 da ea 5b 8f d6 97 61 f1 cd 49 27 fc 4f a3 da 43 a4 b7 58 c9 1e 6e c9 bd d9 f4 50 4e ee d1 e4 e9 2f 2f c8 a9 4d 2b 25 96 46
RSA verifying message (cyberchef)
Input hex bytes
50 5f 7a 6f 10 78 7c 3f 82 ab e7 be d6 ed 9e b5 98 57 b6 fc db e7 e8 8d a0 6a 9d c2 93 5a 41 ae 16 08 06 e2 04 8b a2 f7 e2 39 f6 df 12 b3 7d bc 18 76 9b 30 08 77 fc 45 0a c0 4a f9 55 e8 f6 5d aa ff b4 dd b0 85 30 fc 59 dc c6 54 2b 6e 48 16 86 76 97 16 24 0e 18 da ea 5b 8f d6 97 61 f1 cd 49 27 fc 4f a3 da 43 a4 b7 58 c9 1e 6e c9 bd d9 f4 50 4e ee d1 e4 e9 2f 2f c8 a9 4d 2b 25 96 46
• Convert to Hex bytes
Using public key
—–BEGIN PUBLIC KEY—–
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8hPD6d6Vo80h2XyyEj6zHWiBL
s+QEGTtfFO18s9GcfUlAV5Owk7DfK9f62QLYE7LzslwW2i+lTBlfHs2U+nC+3sMC
OLdu0wcMZGATREiXJo1ixkPgPVvNk16iTf8Hx1n4HSDsuaLpOQXqcik4tS6l2lxE
oIjClyI0XMQ81V5RJQIDAQAB
—–END PUBLIC KEY—–
Input “EH21” into message
Verified OK
Input anything else
Verification Failure