encryption demo
This commit is contained in:
parent
a1542abc50
commit
5f865513f7
9
encryption_demo/README.txt
Normal file
9
encryption_demo/README.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
1. This simply generates keys for alice bob and ken.
|
||||
2. encrypt a simple message bob to alice.
|
||||
3. include bob's signature
|
||||
4. to send a larger message use AES. Generate a symmetric key using RSA keys
|
||||
5. encrpyt using AES
|
||||
6. alice decrypts
|
||||
7. alice verifies it's from bob - which it should
|
||||
8. alice verifies it's from ken - which isn't shouldn't.
|
||||
|
||||
1
encryption_demo/dec/message_dec.txt
Normal file
1
encryption_demo/dec/message_dec.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Hello, Alice! This is a secure message from Bob.
|
||||
3
encryption_demo/dec/signature_dec.sig
Normal file
3
encryption_demo/dec/signature_dec.sig
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
M#áÏ}ob€‰Ú²äz˜Eì)õ@’SUf.£:Z×ßÿ7òÈ“Msãs~²¼RÐHeq)ùð§RoÕ™¹4{!úfÕÖ€6u`eâB·õœVÖ‚è-c®ìǰèm53C¾huQÞ^ç„aœ7Y'.Ê<>Æ>ú>”FM-µnFR_¥“Êåc7^š¬-`×÷%CÛ1©š1cð™Y2/½«‘9bé,Þ€¸øªcÝ`¾òÊhf
|
||||
bdeúEáŽÉ ß<13>ŠWã"rÝšLc‘ÜbwÜ´§Çè³ï‹½¤3hÕ†x%{äïÊK†Ò
|
||||
FèæÀ$¹„C<E2809E>(
|
||||
1
encryption_demo/dec/symmetric_dec.key
Normal file
1
encryption_demo/dec/symmetric_dec.key
Normal file
|
|
@ -0,0 +1 @@
|
|||
aJR0q9lCufbOArmSxaz2HrzN0lkKbhv3oUSXfcWzEeA=
|
||||
2
encryption_demo/enc/message_enc.txt
Normal file
2
encryption_demo/enc/message_enc.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Salted__„
|
||||
öž~·Œ6yK½aQrÙkÊ8tk9H5dŠU³:!ÜŠÃ&â+n
š<¯èzz*ºR@$Ò¨ˆeWâŒH[~ýÅ=Ì<>
|
||||
BIN
encryption_demo/enc/signature_enc.txt
Normal file
BIN
encryption_demo/enc/signature_enc.txt
Normal file
Binary file not shown.
BIN
encryption_demo/enc/symmetric_enc.key
Normal file
BIN
encryption_demo/enc/symmetric_enc.key
Normal file
Binary file not shown.
27
encryption_demo/keys/alice_private.pem
Normal file
27
encryption_demo/keys/alice_private.pem
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEApiRKC+kk4zPulhMuZ0HofmLg1/ohgENxa5qNIj2a/OdwN+0K
|
||||
8ScKVMERZwIfjq6D7Foj6fH2v0g2MTt65/Pf2M6pYwnO6WfPWWAWYxiTpzdeIZxE
|
||||
X+EsxjXH0PG30LxrZ8Cpw/OGLgDKVHFuxQLeId3MIX3RA1nEd4PdFx9Ts7z4BgtO
|
||||
fxgV0pzmO4cqXmGs1Th4850olm5Zp9YIeaye6PoPAx3ZfPWeF7Hx+T9phZs1/D1l
|
||||
NLTznRsstWzAv1SMVpjEksKeyhGmiu/E2Xh5pvkVMsjk3UAWdHvjLYtoUZ8HqFn4
|
||||
Ggzv1e1cBjGevFZG9Fz+X64fQW1y55PkykrMkQIDAQABAoIBAEdeH1CufeH7VOmy
|
||||
o6RHc4+W+e7My8dFMVt/sFCdFg69fD8J3EFq+80cglU1XEj2PkUxE2xTPCM+6ciM
|
||||
PGeXIvkHDUw10mQA69kApZ072XFjH1RgxB5Lo+ghAgyHSOapiZmv8TzzRxhLzp4n
|
||||
e+W1LaZumFlqqnY+AV81jat5EYOLX+qPmqSJPZyfDAB+DeTpBlHRTIIyZlh3p7md
|
||||
iFkGnaG1+T0GmeP7kkVeZaQ4hZTV66d8Pn75rTPH2gSlA3N0pevj1um7IaEYuF2j
|
||||
lFhTbanEcu08UKvbd3+f1ojBpNKPdI0aIRG3WyZG31gvIHGraLW3t1Ed/hpeslFX
|
||||
rKN3tIECgYEA0bsVxuuB6pOFNsAuGuecmthXHv1tBNLq15C1mmTAwkGkt04Ap2ac
|
||||
mMXcW8SgR/WvngZoZoTVu1N4oQpdwHLlsPTy3UHZ2x9NaXSWnCxcJVtAvjRIhARn
|
||||
D0nxVCUXtoUHbbRH7MGOnP3a3wA0gvuqFAUH6GJ6yJisVy259jOGFj0CgYEAystv
|
||||
suWJyEGGCdbF+o7ulHjGA269xmbse1AvndFGcgCP81xc7sWe3+suT9WhJtL2SHhq
|
||||
XWAjfgDXTs9eXkjeE3cXuoaBgSMR/izdQEil11cfTudf4QcBTMICLE8EDGem4vNt
|
||||
gU7QaWrb8vTVhx8Qfyob3Dg5PPnTG29EPC6zCOUCgYEAkajpevndhNlnz5qxaqYp
|
||||
MbHG8BL6QDtsNsKeHdiTt1Z324clFR5C7Cee3200FEYh7hJtN6ZR+oQCZ3YXnq0t
|
||||
sTSt59TwRSr8TJ1YbKayaI9z66XMJ0QXf5rPLK2GRpElk599xIS5U3dLJ02xKrc2
|
||||
bCkCUPb0Z5UBPJrZaJBoM9ECgYAc7ETjC+/JuuamEpar9KS8UjlTlgDFAjrqH3ab
|
||||
GJTmf4QIXnz2pQLSxtUVF8/jHKV5kosBBEwrlW0f1V2NLvFVb1/X/4UK6PiQ+s8X
|
||||
cwUMIGXbuA4ppvkdfHIY5bAbINFhfvx4O8hnsJDsJtUpb1nH+TZ+AxrOwobEW+ss
|
||||
djCcrQKBgQC/1wwl/kKdz3y0HaMZNh4Uj3nlhD8emOHGanTj/Wgx4jpbB9HN6RpX
|
||||
2b34BXnGKCGpz39khEmZSm6/pSEAxEy1PXfno7LZ1s2Jki4W3i8IuGy+CEXkyyHj
|
||||
/swwqzvahPHN+US6/VuIs5gY26eE79nqAJR6jCfa5uuZBMS3OXDWhw==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
9
encryption_demo/keys/alice_public.pem
Normal file
9
encryption_demo/keys/alice_public.pem
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApiRKC+kk4zPulhMuZ0Ho
|
||||
fmLg1/ohgENxa5qNIj2a/OdwN+0K8ScKVMERZwIfjq6D7Foj6fH2v0g2MTt65/Pf
|
||||
2M6pYwnO6WfPWWAWYxiTpzdeIZxEX+EsxjXH0PG30LxrZ8Cpw/OGLgDKVHFuxQLe
|
||||
Id3MIX3RA1nEd4PdFx9Ts7z4BgtOfxgV0pzmO4cqXmGs1Th4850olm5Zp9YIeaye
|
||||
6PoPAx3ZfPWeF7Hx+T9phZs1/D1lNLTznRsstWzAv1SMVpjEksKeyhGmiu/E2Xh5
|
||||
pvkVMsjk3UAWdHvjLYtoUZ8HqFn4Ggzv1e1cBjGevFZG9Fz+X64fQW1y55PkykrM
|
||||
kQIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
27
encryption_demo/keys/bob_private.pem
Normal file
27
encryption_demo/keys/bob_private.pem
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAuYWN3XjjpGmXZOZeqzGi6dmTJqGMlk/f7lo0f6VbL2VR5vMQ
|
||||
tTA3Wzl4s1cE6Iic4O/SBrnT0AB1d9zGC0P1jvA+E+1IuPoSojqPyGgByagFNfMs
|
||||
F7w04fvXrfJM5TB/FWczdCNIgtbWEAXaKESKE1mXMTMEjzECh5vJj7cXnd9EORhx
|
||||
gvyokGz5Zn1cSoOfm6QMGXYSGNRiG9qKbqMPcOZJXXLcTvsifq9hMiphccTzq1pz
|
||||
slC7I5zGqGxejyCF/w6w/6fIahe8sBLFBQB8bfmbYxelHYJq/3DIZCcE9IOndKJs
|
||||
pjGhXrI7v9KDRAhDKbTJYtjTMFbG/el2upv++QIDAQABAoIBADEgJmLBAjalJ0u2
|
||||
nNbkO+mEjayrFpku6XMqO8CZPr4cLEXlk0UHUYE8hLOolUol8rS1jH3vcyEfHfvx
|
||||
YBfXlQyWnTmVma4xugFvVGeS8vY9IbQZglF+qto0X/ZVtPrzjpNSUpOsTCUpUmHH
|
||||
yu7ix1U8YgbLJaftKGhUXllJ+Fz7MAMDlJrCSmkWy/eDWUZzJ2e1T8KgYawsk6TN
|
||||
l9BIZb+HrDps2MrrrpFUr4Yu/T/h0tT6dOIqB3ZTRagzYWTOs8bUawfQH7qiQm3n
|
||||
xwT1cVZ8oHsrO9KzeeyiojxUrOZ3ihssteEn42GdR+Vd8Bs0CV6IzT1NBYZrFS7s
|
||||
+PiGYwECgYEA8aoEZtTCqAo+lznqZCm6RCFPfLLfg8vkA9XkwhVn4V4gwuJyAXRc
|
||||
wYpFatUVcMwnCrs0EpzEJt2L6z/Kqj3OrtA1S9uXUsOUeLH/6K4JUXQX2cpFkC1k
|
||||
UmiWZZFuSHOMzHXETMNZaDNDRuQAhfpfN2Cg8JOdwpKbfWpMFMP64HECgYEAxIbw
|
||||
/1inYgqpofSlXh+31aNjaHyf/hSN8q8Xb8+f7uhp1SoPWkCp3PEt+DWg2lvuafGx
|
||||
0FT3vZpB5EwHFWkCaLrHyJ9e+X1L/YG22xb3T57Gt4oSvQTl8SvWH+zKAdHTiBSw
|
||||
JJRAVR3aJi25TYyhdIsPITWDxz/ugtAYHiwZSwkCgYAdh3DSP90pO1c6k1EYvCCO
|
||||
gqN70T+OkzNhZJl3PbZby2ylY5Yap2VOIN8qlq7wAYIjxYwvWgh910RpknnpI3RF
|
||||
2BsrEcID0vIpbVafz+RDl7PyYMzvORyxFSaLcqHPKI9jzGAYISajnN/zoZiOxnEs
|
||||
CxqfSupUBCYLxRlW0DuvgQKBgQCm7HrsV++sDaRxhGulW8l4c1PvHtOCKxE6TU/Z
|
||||
z39nnA6wWQ47OWtN16iVB2/9qFIDuJ+wdUsLx2cqMw1dORkrvWIN3Jf9z1fpFfEr
|
||||
fAFJpnHg2Sz7UZrBUtuHuEcIbqF+FxxZpXZTFY0CGpom7UkBxU9vhJXOelXq1Dd4
|
||||
ATrmiQKBgDINOIobPsGFOeCOCfAo3bYF3hvb4Krn23TbWdYjpthNF68InDwaLBnk
|
||||
O5kGq1iGyihRBnszxvVkmQK6RqVUsuEkVk6xYyuLVXjzIbgPAHYVdkZB/86FyR/y
|
||||
QvdUCeMaQ9XbMmYu/HFqM8qBHJdQ8f+dxkSM0LUVoVExtGEUdTr/
|
||||
-----END RSA PRIVATE KEY-----
|
||||
9
encryption_demo/keys/bob_public.pem
Normal file
9
encryption_demo/keys/bob_public.pem
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuYWN3XjjpGmXZOZeqzGi
|
||||
6dmTJqGMlk/f7lo0f6VbL2VR5vMQtTA3Wzl4s1cE6Iic4O/SBrnT0AB1d9zGC0P1
|
||||
jvA+E+1IuPoSojqPyGgByagFNfMsF7w04fvXrfJM5TB/FWczdCNIgtbWEAXaKESK
|
||||
E1mXMTMEjzECh5vJj7cXnd9EORhxgvyokGz5Zn1cSoOfm6QMGXYSGNRiG9qKbqMP
|
||||
cOZJXXLcTvsifq9hMiphccTzq1pzslC7I5zGqGxejyCF/w6w/6fIahe8sBLFBQB8
|
||||
bfmbYxelHYJq/3DIZCcE9IOndKJspjGhXrI7v9KDRAhDKbTJYtjTMFbG/el2upv+
|
||||
+QIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
27
encryption_demo/keys/ken_private.pem
Normal file
27
encryption_demo/keys/ken_private.pem
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEogIBAAKCAQEAupa+Byv9x5Pc1esF0c39YZUvqHQ4mdElJ357u7MoqsWnMwwp
|
||||
W5n/ZnhPDh+aumEGrNpaPEGX2ziWwWf8NZIqBbzx2Dy6G/i9LcFYD5s0fJnlHb5X
|
||||
wqoge7SSQtByLY7pffcYIDiGuLNnM8cW/9crnS7WBxbPQiVYGH3n4HJRTtPrs3Yj
|
||||
O7Q6xXd3vA6/b92bkzX/YoEJkP/b0/9YqqoDTKrZgWNgQI33QQkEe4FpH2NHNHin
|
||||
srT2/HlUt77J8xrHpQvmo9+FzqhW8qurmVdfkQkYDgdcaTFu2X5Um5RuUZOlBqxi
|
||||
xkYwzgU0JWe/aCbS93c849XIZkeyatBG4kolGQIDAQABAoIBAEnzMIE7KCuPKLkH
|
||||
mpjaYQ/pxqem2D/uKiGK+ZMcoIN+LpQGv+V0FUsRZ5ObZwFzLugW6ihzfrH9rZId
|
||||
mlHJCiqYBenDt6caYC/gLvyQcK7pd2rgY3vdXV5p5IXigz4XI+cupTsv7AUL5V0a
|
||||
DL19E+YKB/1rRt1aW53pWJsV86+flKMGnU3vM7fwpREnhIzWBl5ulzgOB5KrRH1/
|
||||
0CDPvLlF/TUaYaEP4l0qsyTu+o0JRyD5jlnOxEsiKLUYHiNZrVrrMeI0CJSvM+KB
|
||||
wqf3ViJDoxB5x7X0Bx9zF1gF4bky8dNsshICjBXC0x4bVg3taUEDASCi6qGqEM+B
|
||||
6BxAsWECgYEA5IPpc9bzmwCnmveSqK2/ICaX5cd7MtG6wXm2M4ygHxs2a6Js+hbv
|
||||
xaOwlbJrVcd9Fzbkqm68MQpBj/2W4WZROuxZTiY/phjTqqni4OBF1Ow3lIIFVIDD
|
||||
ZONRxPMXYNhGH0Oq6hroL3QYRsiXW0Xdrci6iuPNFxarfJfwc+BVtvUCgYEA0Qfl
|
||||
dv34DsaQEHlgTEDSgAhLLMx3zDbLmzjpCGkVaGRI+qnDiOub1YJ8uDJY4nokALLs
|
||||
ApgSauW3SX63TRswUjrj3iivrNif5fbsf6R9Pz/Q9/H9VmxskdJvHu8Qra63P2fp
|
||||
TzVEM4j4GGJ8kvUNSbRr5PWRAin5G7quO4n1txUCgYBA+ERCnCWstzXv+F2pOaTy
|
||||
diaPvPSJEVogsgMciunnjiwd1BNZ03WeYpjNJuoffFVTaVcAIfW9l6XmU3o3YYjM
|
||||
0O/fKT7FcZ+UkTKhLwKLtBFlVsY/LVDgeUUBUwAdl7/wGaQZZUcIXuCcF2H5IFcT
|
||||
ltN6s6PW4aomBWjm+SxFlQKBgEhrxfKuFy13Wh57DwQcSVIWjYUd6juUmIJU+1fw
|
||||
oHwkkqxV+OsNRlZ4+SEQQH9m9eZQFzjm2yqyIAiUoIlUbC9xO9WSnxrxiqSwIkwu
|
||||
/z3UrF/bNXyl4A+9qsY66bpjGBYduFW7DMAWKm64YJTB1jK9Ecynz+/B/w6+ZPM3
|
||||
3yvpAoGAL8F09ao837EmCdzL60+/AVP4wBX7hYpuOOPFvBxve6dhQ3SV/mTRsa+x
|
||||
NKxR7d/QWjSmIyMmY3+nEWjXPSEwmDvpllpdCxvjIfq4VCj2rhokv7imv11JBb9m
|
||||
X1CVYLa2eJBCG9ZLHH8YUVuFKQixxgRObx7JI/WGj+erhJOpdbw=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
9
encryption_demo/keys/ken_public.pem
Normal file
9
encryption_demo/keys/ken_public.pem
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAupa+Byv9x5Pc1esF0c39
|
||||
YZUvqHQ4mdElJ357u7MoqsWnMwwpW5n/ZnhPDh+aumEGrNpaPEGX2ziWwWf8NZIq
|
||||
Bbzx2Dy6G/i9LcFYD5s0fJnlHb5Xwqoge7SSQtByLY7pffcYIDiGuLNnM8cW/9cr
|
||||
nS7WBxbPQiVYGH3n4HJRTtPrs3YjO7Q6xXd3vA6/b92bkzX/YoEJkP/b0/9YqqoD
|
||||
TKrZgWNgQI33QQkEe4FpH2NHNHinsrT2/HlUt77J8xrHpQvmo9+FzqhW8qurmVdf
|
||||
kQkYDgdcaTFu2X5Um5RuUZOlBqxixkYwzgU0JWe/aCbS93c849XIZkeyatBG4kol
|
||||
GQIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
3
encryption_demo/msg/message.sig
Normal file
3
encryption_demo/msg/message.sig
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
M#áÏ}ob€‰Ú²äz˜Eì)õ@’SUf.£:Z×ßÿ7òÈ“Msãs~²¼RÐHeq)ùð§RoÕ™¹4{!úfÕÖ€6u`eâB·õœVÖ‚è-c®ìǰèm53C¾huQÞ^ç„aœ7Y'.Ê<>Æ>ú>”FM-µnFR_¥“Êåc7^š¬-`×÷%CÛ1©š1cð™Y2/½«‘9bé,Þ€¸øªcÝ`¾òÊhf
|
||||
bdeúEáŽÉ ß<13>ŠWã"rÝšLc‘ÜbwÜ´§Çè³ï‹½¤3hÕ†x%{äïÊK†Ò
|
||||
FèæÀ$¹„C<E2809E>(
|
||||
1
encryption_demo/msg/message.txt
Normal file
1
encryption_demo/msg/message.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Hello, Alice! This is a secure message from Bob.
|
||||
1
encryption_demo/msg/symmetric.key
Normal file
1
encryption_demo/msg/symmetric.key
Normal file
|
|
@ -0,0 +1 @@
|
|||
aJR0q9lCufbOArmSxaz2HrzN0lkKbhv3oUSXfcWzEeA=
|
||||
53
encryption_demo/test.bash
Executable file
53
encryption_demo/test.bash
Executable file
|
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Generate RSA key pairs for Alice, Bob, and Ken
|
||||
echo "Generate keys"
|
||||
openssl genrsa -out keys/alice_private.pem 2048
|
||||
openssl rsa -in keys/alice_private.pem -pubout -out keys/alice_public.pem
|
||||
|
||||
openssl genrsa -out keys/bob_private.pem 2048
|
||||
openssl rsa -in keys/bob_private.pem -pubout -out keys/bob_public.pem
|
||||
|
||||
openssl genrsa -out keys/ken_private.pem 2048
|
||||
openssl rsa -in keys/ken_private.pem -pubout -out keys/ken_public.pem
|
||||
|
||||
# Create a simple message file
|
||||
echo "Hello, Alice! This is a secure message from Bob." > msg/message.txt
|
||||
|
||||
echo "Signing"
|
||||
# Bob signs the message
|
||||
openssl dgst -sha256 -sign keys/bob_private.pem -out msg/message.sig msg/message.txt
|
||||
|
||||
echo "Encrypt"
|
||||
# Generate a symmetric AES key
|
||||
openssl rand -base64 32 > msg/symmetric.key
|
||||
|
||||
# Encrypt the message and the signature with the symmetric key
|
||||
openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 -in msg/message.txt -out enc/message_enc.txt -pass file:msg/symmetric.key
|
||||
openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 -in msg/message.sig -out enc/signature_enc.txt -pass file:msg/symmetric.key
|
||||
|
||||
# Encrypt the symmetric key with Alice's public RSA key
|
||||
openssl rsautl -encrypt -inkey keys/alice_public.pem -pubin -in msg/symmetric.key -out enc/symmetric_enc.key
|
||||
|
||||
echo "Decrypt"
|
||||
# Alice decrypts the symmetric key with her private RSA key
|
||||
openssl rsautl -decrypt -inkey keys/alice_private.pem -in enc/symmetric_enc.key -out dec/symmetric_dec.key
|
||||
|
||||
# Alice decrypts the message and the signature with the symmetric key
|
||||
openssl enc -d -aes-256-cbc -pbkdf2 -iter 100000 -in enc/message_enc.txt -out dec/message_dec.txt -pass file:dec/symmetric_dec.key
|
||||
openssl enc -d -aes-256-cbc -pbkdf2 -iter 100000 -in enc/signature_enc.txt -out dec/signature_dec.sig -pass file:dec/symmetric_dec.key
|
||||
|
||||
echo "Verify"
|
||||
# Alice verifies the signature from Bob
|
||||
if openssl dgst -sha256 -verify keys/bob_public.pem -signature dec/signature_dec.sig dec/message_dec.txt; then
|
||||
echo "Signature verification successful: The message is from Bob."
|
||||
else
|
||||
echo "Signature verification failed: The message is not from Bob."
|
||||
fi
|
||||
|
||||
# Attempt to verify the message as if it came from Ken
|
||||
if openssl dgst -sha256 -verify keys/ken_public.pem -signature dec/signature_dec.sig dec/message_dec.txt; then
|
||||
echo "Signature verification false positive: The message is from Ken."
|
||||
else
|
||||
echo "Signature verification correctly failed: The message is not from Ken."
|
||||
fi
|
||||
Loading…
Reference in New Issue
Block a user