aboutsummaryrefslogtreecommitdiff
path: root/test/ejabberd_SUITE_data
diff options
context:
space:
mode:
Diffstat (limited to 'test/ejabberd_SUITE_data')
-rw-r--r--test/ejabberd_SUITE_data/ca.key27
-rw-r--r--test/ejabberd_SUITE_data/ca.pem21
-rw-r--r--test/ejabberd_SUITE_data/cert.pem96
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.extauth.yml5
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.ldap.yml36
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.mnesia.yml65
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.mysql.yml72
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.pgsql.yml72
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.redis.yml66
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.sqlite.yml66
-rw-r--r--test/ejabberd_SUITE_data/ejabberd.yml554
-rwxr-xr-xtest/ejabberd_SUITE_data/extauth.py33
-rwxr-xr-xtest/ejabberd_SUITE_data/gencerts.sh20
-rw-r--r--test/ejabberd_SUITE_data/macros.yml128
-rw-r--r--test/ejabberd_SUITE_data/openssl.cnf322
-rw-r--r--test/ejabberd_SUITE_data/self-signed-cert.pem47
16 files changed, 1145 insertions, 485 deletions
diff --git a/test/ejabberd_SUITE_data/ca.key b/test/ejabberd_SUITE_data/ca.key
new file mode 100644
index 000000000..cc59087c6
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ca.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA5WxWkSLK3iadpy2v57FVc7pK307aWHQqirg+q5PreRB1nLsr
+oW+TaXfgB5B1/GTFStnSbmczqpkuWyi4hIB9ZzM62kWuOpZPx0+w5hHx73VWxpsr
+YgaBkoQsn8BF84PfmRDNG76TOacuoLzeqnN1deWDgOGQ9a7ZesOQLuZBPF6oysfK
+OpAR035fQM6XaaR8Ti6Ko53DkCzw8MiySrAHJOkgxhmX11+hUMjldWCEiRs1VL/g
+rolajqe3B+wu0UdonZ/QUeVk4KRnDIAIJSKw8XmgcB4oI5cUrnDnOmv2784RgJZs
+ZxuGF0e5mz5v8BqXqKiFwH/CD1inUpMA89MATQIDAQABAoIBAQCc2O1x+ixhplrg
+AZ8iMp2uKe2oL5udH4Y6Im5OFSnGMdeGmHviuYo5b8gMw9m1/RrY6oQwEIRFHMaR
+cgx8IfAaDu8sbLkJutu98qCJGjmiMUFrNIh7UuFgztZHPUdVjZHfbpobXrX+k2qQ
+X6+HLrpeKNQ3136oSKrMgEjhl2+AGhe/uqFGw+nwCNzY3BnAJOWS8pipgV0IQ1Eo
+AdJU8SoW/LToo5RTZNodPhyqLl10D1tRJ8WSAndAkvaoMRHJasYQDrmz449+QiTZ
+SLRf9n/TtcKJQTaqwskV/dOdygeBUKnZQhq663TKgTWcTxF1dA5T3QxXv/7p+8Ow
+9GxuxBjBAoGBAPRjb8OCLD8EAtxFXWRWBH5GWF3vGnDIq5FkPaue0uyDaw+TLgJE
+AKV7Ik0IRRZkUdc/xix22Bg83L0ErOD2qLHgZuUvuXtiv+Dq/D2BIb5M3zQy8giA
+vxdlE5O9i8aG647P+ACGOpYZ7a/K645HGxqOZpf8ZRmST5VzNY7qVxb9AoGBAPBS
+4Bo66VMWf6BLd8RIK3DzOf0TWRRMCAwX9kCNTG22TX79imJHWB5lWQQam4yp4Cya
+wo08DT3YcffURW9bJTF2q+JZHMqlEr8q9kcjIJu8uQ7X9N4JsUfCcWaBSHHBNgx/
+coved2h02NFcJmV3HuF2l/miah6p9rPJmGnvG1eRAoGBAKIEqju7OQot5peRhPDX
+9fKhQERGGAldgCDLi/cTPFKAbaHNuVrXKnaKw5q+OM83gupo5UDlKS4oa08Eongi
+DoSeeJjIovch6IN8Re2ghnZbED7S55KriARChlAUAW6EU/ZB+fCfDIgmeGVq6e9R
+RK6+aVWphn0Feq1hy8gLo+EhAoGBAI/hvmRV4v2o2a5ZoJH2d3O/W3eGTu3U+3hq
+HDfXoOuKmukt2N0wQ7SnDt1jJL/ZsOpjmZk/W9osLUeoYg3ibuknWI9CtPcqT4f+
+q8Y5ZLt5CP63EtagzO/enVA2lO3uNHLVFvpgrfLvCiSGXEKhR+7KtwBxWcGUFqzb
+RJIf4qnRAoGAR+c24S4MtVuw6+UVKyLxhjB6iDTvJijdIr/+ofbeM5TQHGsYzZzP
+HHNdZ5ECz5eDnaNzvAs4CCuy+75cqlUhAgzrLlCj+dJN/fYEJsD6AjWdto3Zorig
+XBFM8FtXP7VRjFNwCCbdhrFOcmgbAtz3ReS6Ts6drSw7OgyeDajam1U=
+-----END RSA PRIVATE KEY-----
diff --git a/test/ejabberd_SUITE_data/ca.pem b/test/ejabberd_SUITE_data/ca.pem
new file mode 100644
index 000000000..089238d62
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ca.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDazCCAlOgAwIBAgIUUynLQejEU8NykU/YNfL1dyC7vxcwDQYJKoZIhvcNAQEL
+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xODA5MjQxMzE4MjRaFw00NjAy
+MDkxMzE4MjRaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
+HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDlbFaRIsreJp2nLa/nsVVzukrfTtpYdCqKuD6rk+t5
+EHWcuyuhb5Npd+AHkHX8ZMVK2dJuZzOqmS5bKLiEgH1nMzraRa46lk/HT7DmEfHv
+dVbGmytiBoGShCyfwEXzg9+ZEM0bvpM5py6gvN6qc3V15YOA4ZD1rtl6w5Au5kE8
+XqjKx8o6kBHTfl9AzpdppHxOLoqjncOQLPDwyLJKsAck6SDGGZfXX6FQyOV1YISJ
+GzVUv+CuiVqOp7cH7C7RR2idn9BR5WTgpGcMgAglIrDxeaBwHigjlxSucOc6a/bv
+zhGAlmxnG4YXR7mbPm/wGpeoqIXAf8IPWKdSkwDz0wBNAgMBAAGjUzBRMB0GA1Ud
+DgQWBBQGU3AZGF8ahVEnpfHB5ETAW5uIBzAfBgNVHSMEGDAWgBQGU3AZGF8ahVEn
+pfHB5ETAW5uIBzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAK
+jIEjOh7k1xaEMBygQob9XGLmyLgmw1GEvWx7wiDpcdHXuAH9mLC4NPNSjOXPNK2V
+u4dh1KHy1z+dHJbt2apXejxtiwlcMWmPDF2EtKjstUN+KXecG7vjReArs71T9ir/
+7Xfwfg6TKD3H7efYFJaBb7d/lyneNP1Ive/rkRsGqCglkoX4ajcAm7MLkkFD8TCP
+NqFc7SdA4OsaeYiUmjnyTUDbKgG0bDAXymhsUzd6Pa9kKQx+dH4GPiCoNoypCXD7
+RZSlETNGZ0vdxCjpdvT4eYxSIalG4rAU85turqPF/ovdzUzb72Sta0L5Hrf0rLa/
+um3+Xel8qI+p3kErAG2v
+-----END CERTIFICATE-----
diff --git a/test/ejabberd_SUITE_data/cert.pem b/test/ejabberd_SUITE_data/cert.pem
index 11e18491f..7b82b3ca7 100644
--- a/test/ejabberd_SUITE_data/cert.pem
+++ b/test/ejabberd_SUITE_data/cert.pem
@@ -1,52 +1,54 @@
-----BEGIN CERTIFICATE-----
-MIIGbDCCBVSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJBVTET
-MBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQ
-dHkgTHRkMB4XDTE2MDUyNDE3NDIyNVoXDTQzMTAxMDE3NDIyNVowVjELMAkGA1UE
+MIIEjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTET
+MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
+dHkgTHRkMB4XDTE4MDkyNDEzMTgyNFoXDTQ2MDIwOTEzMTgyNFowWTELMAkGA1UE
BhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
-ZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAxMGYWN0aXZlMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQC+GTA1D1+yiXgLqUhJXkSj3hj5FiqlBAfJT/8OSXYifY4M4HYv
-VQrqER2Fs7jdCaeoGWDvwfK/UOV0b1ROnf+T/2bXFs8EOeqjOz4xG2oexNKVrYj9
-ICYAgmSh6Hf2cZJM/YCAISje93Xl2J2w/N7oFC1ZXasPoBIZv3Fgg7hTtQIDAQAB
-o4ID2DCCA9QwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5l
-cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFEynWiCoZK4tLDk3KM1wMsbrz9Ug
-MB8GA1UdIwQYMBaAFND2ZsvHIjITekPKs0ywLfoNEen5MDMGA1UdHwQsMCowKKAm
-oCSGImh0dHA6Ly9sb2NhbGhvc3Q6NTI4MC9kYXRhL2NybC5kZXIwNgYIKwYBBQUH
-AQEEKjAoMCYGCCsGAQUFBzABhhpodHRwOi8vbG9jYWxob3N0OjUyODAvb2NzcDAL
-BgNVHQ8EBAMCBeAwEwYDVR0lBAwwCgYIKwYBBQUHAwkwggLIBgNVHREEggK/MIIC
-u6A4BggrBgEFBQcIBaAsDCp0ZXN0X3NpbmdsZSEjJCVeKigpYH4rLTtfPVtde318
-XEBsb2NhbGhvc3SgPwYIKwYBBQUHCAWgMwwxdGVzdF9zaW5nbGUhIyQlXiooKWB+
-Ky07Xz1bXXt9fFxAbW5lc2lhLmxvY2FsaG9zdKA+BggrBgEFBQcIBaAyDDB0ZXN0
-X3NpbmdsZSEjJCVeKigpYH4rLTtfPVtde318XEBteXNxbC5sb2NhbGhvc3SgPgYI
-KwYBBQUHCAWgMgwwdGVzdF9zaW5nbGUhIyQlXiooKWB+Ky07Xz1bXXt9fFxAcGdz
-cWwubG9jYWxob3N0oD8GCCsGAQUFBwgFoDMMMXRlc3Rfc2luZ2xlISMkJV4qKClg
-fistO189W117fXxcQHNxbGl0ZS5sb2NhbGhvc3SgQAYIKwYBBQUHCAWgNAwydGVz
-dF9zaW5nbGUhIyQlXiooKWB+Ky07Xz1bXXt9fFxAZXh0YXV0aC5sb2NhbGhvc3Sg
-PQYIKwYBBQUHCAWgMQwvdGVzdF9zaW5nbGUhIyQlXiooKWB+Ky07Xz1bXXt9fFxA
-bGRhcC5sb2NhbGhvc3SgPQYIKwYBBQUHCAWgMQwvdGVzdF9zaW5nbGUhIyQlXioo
-KWB+Ky07Xz1bXXt9fFxAcDFkYi5sb2NhbGhvc3SgPQYIKwYBBQUHCAWgMQwvdGVz
-dF9zaW5nbGUhIyQlXiooKWB+Ky07Xz1bXXt9fFxAcmlhay5sb2NhbGhvc3SgPgYI
-KwYBBQUHCAWgMgwwdGVzdF9zaW5nbGUhIyQlXiooKWB+Ky07Xz1bXXt9fFxAcmVk
-aXMubG9jYWxob3N0oD4GCCsGAQUFBwgFoDIMMHRlc3Rfc2luZ2xlISMkJV4qKClg
-fistO189W117fXxcQG1zc3FsLmxvY2FsaG9zdDANBgkqhkiG9w0BAQUFAAOCAQEA
-et4jpmpwlE+2bw+/iqCt7sfU/5nPmQ8YtgMB+32wf7DINNJgkwOdkYJpzhlMXKrh
-/bn8+Ybmq6MbK0r2R91Uu858xQf8VKExQm44qaGSyL5Ug3jsAWb3GLZSaWQo37e9
-QdDeP8XijCEyr3rum19tRIdiImsRAxJqwfaE4pUSgfCEQMkvb+6//8HSf9RRPToD
-o6eAg8QerEtTfxerEdW/0K1ozOrzSrQembWOu+JjvANRl+p59j+1YOWHzS/yQeZl
-K3sjFoCvXPvocRnUznvT+TSdy3ORJSjwfEcP5Crim70amZZ6NeMAxfby9wwmmX0x
-zkwPCSUXliXke6T88Olj7Q==
+ZGdpdHMgUHR5IEx0ZDESMBAGA1UEAxMJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEA1oQMN4MZ/wEf4SM7chwHZ+ymQ5Knt45VZ0jmgpnK
+Fx0p+eJoNegvvwY/80NWTmcgbGnqruJiOh5AEUNDtCD5G/70oz2WHgZBZkuLsopE
+a/2sDmwxvUbv1f/mD8iHcDaWUvKAy4TUHFeHDQL28HJom9E7bgYadeuhebwZcsbu
+lPFePw+fWM7jLWxkMYClfsdzsBrgerbZVPnAuj77cGXZSQ6p96jOPiJ/mjOVCwWJ
+tdlqwme2AC4AwKYdWzc3Ysw8lES/ubMa+lP1Eh9aI8edpHIlC5nYNLVTWa4Xw6Ct
+AvqzKtNNJzwypbR3fcDXaWvvO3GY3wOHVC/wyCsL8SXc7QIDAQABo4IBcjCCAW4w
+CQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
+dGlmaWNhdGUwHQYDVR0OBBYEFFvDi47v5xJKOsgQo8MP4JzY6cC/MB8GA1UdIwQY
+MBaAFAZTcBkYXxqFUSel8cHkRMBbm4gHMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6
+Ly9sb2NhbGhvc3Q6NTI4MC9kYXRhL2NybC5kZXIwNgYIKwYBBQUHAQEEKjAoMCYG
+CCsGAQUFBzABhhpodHRwOi8vbG9jYWxob3N0OjUyODAvb2NzcDALBgNVHQ8EBAMC
+BeAwJwYDVR0lBCAwHgYIKwYBBQUHAwkGCCsGAQUFBwMBBggrBgEFBQcDAjBQBgNV
+HREESTBHggsqLmxvY2FsaG9zdKA4BggrBgEFBQcIBaAsDCp0ZXN0X3NpbmdsZSEj
+JCVeKigpYH4rLTtfPVtde318XEBsb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEB
+AEW8qvdyBMOSjCwJ1G178xsxf8Adw/9QN2ftBGKCo1C3YtmP5CvipChq5FTrOvRz
+XjoQxbKhlqEumkZQkfmLiM/DLbkFeNqGWpuy14lkyIPUknaLKNCJX++pXsJrPLGR
+btWnlB0cb+pLIB/UkG8OIpW07pNOZxHdHoHInRMMs89kgsmhIpn5OamzPWK/bqTB
+YjAPIdmdkYk9oxWfgjpJ4BG2PbGS6CnjA29j7vebuQ4ebVpFBMI9w77PY3NcuMK7
+ML6MV6ez/+nPpz+E4zRxsVxmVAbSaiFDW3G3efAybDeT5QW1x/oJm2SpsJNIGHcp
+RecYNo9esOTG+Bg6wypg4WA=
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
-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
+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
-----END RSA PRIVATE KEY-----
diff --git a/test/ejabberd_SUITE_data/ejabberd.extauth.yml b/test/ejabberd_SUITE_data/ejabberd.extauth.yml
new file mode 100644
index 000000000..660ddccd6
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.extauth.yml
@@ -0,0 +1,5 @@
+define_macro:
+ EXTAUTH_CONFIG:
+ queue_type: ram
+ extauth_program: "python extauth.py"
+ auth_method: external
diff --git a/test/ejabberd_SUITE_data/ejabberd.ldap.yml b/test/ejabberd_SUITE_data/ejabberd.ldap.yml
new file mode 100644
index 000000000..a60d227da
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.ldap.yml
@@ -0,0 +1,36 @@
+define_macro:
+ LDAP_CONFIG:
+ queue_type: ram
+ ldap_servers:
+ - "localhost"
+ ldap_rootdn: "cn=admin,dc=localhost"
+ ldap_port: 1389
+ ldap_password: "password"
+ ldap_base: "ou=users,dc=localhost"
+ auth_method: ldap
+ modules:
+ mod_vcard:
+ db_type: ldap
+ mod_roster: [] # mod_roster is required by mod_shared_roster
+ mod_shared_roster_ldap:
+ ldap_auth_check: off
+ ldap_base: "dc=localhost"
+ ldap_rfilter: "(objectClass=posixGroup)"
+ ldap_gfilter: "(&(objectClass=posixGroup)(cn=%g))"
+ ldap_memberattr: "memberUid"
+ ldap_ufilter: "(uid=%u)"
+ ldap_userdesc: "cn"
+ mod_adhoc: []
+ mod_configure: []
+ mod_disco: []
+ mod_ping: []
+ mod_proxy65:
+ port: PROXY_PORT
+ mod_register:
+ welcome_message:
+ subject: "Welcome!"
+ body: "Hi.
+Welcome to this XMPP server."
+ mod_stats: []
+ mod_time: []
+ mod_version: []
diff --git a/test/ejabberd_SUITE_data/ejabberd.mnesia.yml b/test/ejabberd_SUITE_data/ejabberd.mnesia.yml
new file mode 100644
index 000000000..14bb2bff2
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.mnesia.yml
@@ -0,0 +1,65 @@
+define_macro:
+ MNESIA_CONFIG:
+ queue_type: ram
+ auth_method: internal
+ modules:
+ mod_announce:
+ db_type: internal
+ access: local
+ mod_blocking: []
+ mod_caps:
+ db_type: internal
+ mod_last:
+ db_type: internal
+ mod_muc:
+ db_type: internal
+ vcard: VCARD
+ mod_offline:
+ db_type: internal
+ mod_privacy:
+ db_type: internal
+ mod_private:
+ db_type: internal
+ mod_pubsub:
+ access_createnode: pubsub_createnode
+ ignore_pep_from_offline: true
+ last_item_cache: false
+ plugins:
+ - "flat"
+ - "pep"
+ vcard: VCARD
+ mod_roster:
+ versioning: true
+ store_current_id: true
+ db_type: internal
+ mod_mam:
+ db_type: internal
+ mod_vcard:
+ db_type: internal
+ vcard: VCARD
+ mod_vcard_xupdate: []
+ mod_client_state:
+ queue_presence: true
+ queue_chat_states: true
+ queue_pep: true
+ mod_adhoc: []
+ mod_configure: []
+ mod_disco: []
+ mod_ping: []
+ mod_proxy65:
+ port: PROXY_PORT
+ mod_push:
+ include_body: false
+ mod_push_keepalive: []
+ mod_s2s_dialback: []
+ mod_stream_mgmt:
+ resume_timeout: 3
+ mod_legacy_auth: []
+ mod_register:
+ welcome_message:
+ subject: "Welcome!"
+ body: "Hi.
+Welcome to this XMPP server."
+ mod_stats: []
+ mod_time: []
+ mod_version: []
diff --git a/test/ejabberd_SUITE_data/ejabberd.mysql.yml b/test/ejabberd_SUITE_data/ejabberd.mysql.yml
new file mode 100644
index 000000000..411901976
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.mysql.yml
@@ -0,0 +1,72 @@
+define_macro:
+ MYSQL_CONFIG:
+ sql_username: MYSQL_USER
+ sql_type: mysql
+ sql_server: MYSQL_SERVER
+ sql_port: MYSQL_PORT
+ sql_pool_size: 1
+ sql_password: MYSQL_PASS
+ sql_database: MYSQL_DB
+ auth_method: sql
+ sm_db_type: sql
+ modules:
+ mod_announce:
+ db_type: sql
+ access: local
+ mod_blocking: []
+ mod_caps:
+ db_type: sql
+ mod_last:
+ db_type: sql
+ mod_muc:
+ db_type: sql
+ ram_db_type: sql
+ vcard: VCARD
+ mod_offline:
+ use_cache: true
+ db_type: sql
+ mod_privacy:
+ db_type: sql
+ mod_private:
+ db_type: sql
+ mod_pubsub:
+ db_type: sql
+ access_createnode: pubsub_createnode
+ ignore_pep_from_offline: true
+ last_item_cache: false
+ plugins:
+ - "flat"
+ - "pep"
+ vcard: VCARD
+ mod_roster:
+ versioning: true
+ store_current_id: true
+ db_type: sql
+ mod_mam:
+ db_type: sql
+ mod_vcard:
+ db_type: sql
+ vcard: VCARD
+ mod_vcard_xupdate: []
+ mod_adhoc: []
+ mod_configure: []
+ mod_disco: []
+ mod_ping: []
+ mod_proxy65:
+ port: PROXY_PORT
+ mod_push:
+ db_type: sql
+ include_body: false
+ mod_push_keepalive: []
+ mod_s2s_dialback: []
+ mod_stream_mgmt:
+ resume_timeout: 3
+ mod_legacy_auth: []
+ mod_register:
+ welcome_message:
+ subject: "Welcome!"
+ body: "Hi.
+Welcome to this XMPP server."
+ mod_stats: []
+ mod_time: []
+ mod_version: []
diff --git a/test/ejabberd_SUITE_data/ejabberd.pgsql.yml b/test/ejabberd_SUITE_data/ejabberd.pgsql.yml
new file mode 100644
index 000000000..c0cd0b0d6
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.pgsql.yml
@@ -0,0 +1,72 @@
+define_macro:
+ PGSQL_CONFIG:
+ sql_username: PGSQL_USER
+ sql_type: pgsql
+ sql_server: PGSQL_SERVER
+ sql_port: PGSQL_PORT
+ sql_pool_size: 1
+ sql_password: PGSQL_PASS
+ sql_database: PGSQL_DB
+ auth_method: sql
+ sm_db_type: sql
+ modules:
+ mod_announce:
+ db_type: sql
+ access: local
+ mod_blocking: []
+ mod_caps:
+ db_type: sql
+ mod_last:
+ db_type: sql
+ mod_muc:
+ db_type: sql
+ ram_db_type: sql
+ vcard: VCARD
+ mod_offline:
+ use_cache: true
+ db_type: sql
+ mod_privacy:
+ db_type: sql
+ mod_private:
+ db_type: sql
+ mod_pubsub:
+ db_type: sql
+ access_createnode: pubsub_createnode
+ ignore_pep_from_offline: true
+ last_item_cache: false
+ plugins:
+ - "flat"
+ - "pep"
+ vcard: VCARD
+ mod_roster:
+ versioning: true
+ store_current_id: true
+ db_type: sql
+ mod_mam:
+ db_type: sql
+ mod_vcard:
+ db_type: sql
+ vcard: VCARD
+ mod_vcard_xupdate: []
+ mod_adhoc: []
+ mod_configure: []
+ mod_disco: []
+ mod_ping: []
+ mod_proxy65:
+ port: PROXY_PORT
+ mod_push:
+ db_type: sql
+ include_body: false
+ mod_push_keepalive: []
+ mod_s2s_dialback: []
+ mod_stream_mgmt:
+ resume_timeout: 3
+ mod_legacy_auth: []
+ mod_register:
+ welcome_message:
+ subject: "Welcome!"
+ body: "Hi.
+Welcome to this XMPP server."
+ mod_stats: []
+ mod_time: []
+ mod_version: []
diff --git a/test/ejabberd_SUITE_data/ejabberd.redis.yml b/test/ejabberd_SUITE_data/ejabberd.redis.yml
new file mode 100644
index 000000000..7065f0ffd
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.redis.yml
@@ -0,0 +1,66 @@
+define_macro:
+ REDIS_CONFIG:
+ queue_type: ram
+ auth_method: internal
+ sm_db_type: redis
+ modules:
+ mod_announce:
+ db_type: internal
+ access: local
+ mod_blocking: []
+ mod_caps:
+ db_type: internal
+ mod_last:
+ db_type: internal
+ mod_muc:
+ db_type: internal
+ vcard: VCARD
+ mod_offline:
+ db_type: internal
+ mod_privacy:
+ db_type: internal
+ mod_private:
+ db_type: internal
+ mod_pubsub:
+ access_createnode: pubsub_createnode
+ ignore_pep_from_offline: true
+ last_item_cache: false
+ plugins:
+ - "flat"
+ - "pep"
+ vcard: VCARD
+ mod_roster:
+ versioning: true
+ store_current_id: true
+ db_type: internal
+ mod_mam:
+ db_type: internal
+ mod_vcard:
+ db_type: internal
+ vcard: VCARD
+ mod_vcard_xupdate: []
+ mod_client_state:
+ queue_presence: true
+ queue_chat_states: true
+ queue_pep: true
+ mod_adhoc: []
+ mod_configure: []
+ mod_disco: []
+ mod_ping: []
+ mod_proxy65:
+ port: PROXY_PORT
+ mod_push:
+ include_body: false
+ mod_push_keepalive: []
+ mod_s2s_dialback: []
+ mod_stream_mgmt:
+ resume_timeout: 3
+ mod_legacy_auth: []
+ mod_register:
+ welcome_message:
+ subject: "Welcome!"
+ body: "Hi.
+Welcome to this XMPP server."
+ mod_stats: []
+ mod_time: []
+ mod_version: []
diff --git a/test/ejabberd_SUITE_data/ejabberd.sqlite.yml b/test/ejabberd_SUITE_data/ejabberd.sqlite.yml
new file mode 100644
index 000000000..3e22f6a2d
--- /dev/null
+++ b/test/ejabberd_SUITE_data/ejabberd.sqlite.yml
@@ -0,0 +1,66 @@
+define_macro:
+ SQLITE_CONFIG:
+ sql_type: sqlite
+ sql_pool_size: 1
+ auth_method: sql
+ sm_db_type: sql
+ modules:
+ mod_announce:
+ db_type: sql
+ access: local
+ mod_blocking: []
+ mod_caps:
+ db_type: sql
+ mod_last:
+ db_type: sql
+ mod_muc:
+ db_type: sql
+ ram_db_type: sql
+ vcard: VCARD
+ mod_offline:
+ db_type: sql
+ mod_privacy:
+ db_type: sql
+ mod_private:
+ db_type: sql
+ mod_pubsub:
+ db_type: sql
+ access_createnode: pubsub_createnode
+ ignore_pep_from_offline: true
+ last_item_cache: false
+ plugins:
+ - "flat"
+ - "pep"
+ vcard: VCARD
+ mod_roster:
+ versioning: true
+ store_current_id: true
+ db_type: sql
+ mod_mam:
+ db_type: sql
+ mod_vcard:
+ db_type: sql
+ vcard: VCARD
+ mod_vcard_xupdate: []
+ mod_adhoc: []
+ mod_configure: []
+ mod_disco: []
+ mod_ping: []
+ mod_proxy65:
+ port: PROXY_PORT
+ mod_push:
+ db_type: sql
+ include_body: false
+ mod_push_keepalive: []
+ mod_s2s_dialback: []
+ mod_stream_mgmt:
+ resume_timeout: 3
+ mod_legacy_auth: []
+ mod_register:
+ welcome_message:
+ subject: "Welcome!"
+ body: "Hi.
+Welcome to this XMPP server."
+ mod_stats: []
+ mod_time: []
+ mod_version: []
diff --git a/test/ejabberd_SUITE_data/ejabberd.yml b/test/ejabberd_SUITE_data/ejabberd.yml
index aca547d99..cea93fe90 100644
--- a/test/ejabberd_SUITE_data/ejabberd.yml
+++ b/test/ejabberd_SUITE_data/ejabberd.yml
@@ -1,449 +1,149 @@
-host_config:
- "pgsql.localhost":
- sql_username: "@@pgsql_user@@"
- sql_type: pgsql
- sql_server: "@@pgsql_server@@"
- sql_port: @@pgsql_port@@
- sql_pool_size: 1
- sql_password: "@@pgsql_pass@@"
- sql_database: "@@pgsql_db@@"
- auth_method: sql
- sm_db_type: sql
- modules:
- mod_announce:
- db_type: sql
- access: local
- mod_blocking: []
- mod_caps:
- db_type: sql
- mod_last:
- db_type: sql
- mod_muc:
- db_type: sql
- mod_offline:
- db_type: sql
- mod_privacy:
- db_type: sql
- mod_private:
- db_type: sql
- mod_pubsub:
- db_type: sql
- access_createnode: pubsub_createnode
- ignore_pep_from_offline: true
- last_item_cache: false
- plugins:
- - "flat"
- - "hometree"
- - "pep"
- mod_mix: []
- mod_roster:
- versioning: true
- store_current_id: true
- db_type: sql
- mod_mam:
- db_type: sql
- mod_vcard:
- db_type: sql
- mod_vcard_xupdate:
- db_type: sql
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "sqlite.localhost":
- sql_type: sqlite
- auth_method: sql
- sm_db_type: sql
- modules:
- mod_announce:
- db_type: sql
- access: local
- mod_blocking: []
- mod_caps:
- db_type: sql
- mod_last:
- db_type: sql
- mod_muc:
- db_type: sql
- mod_offline:
- db_type: sql
- mod_privacy:
- db_type: sql
- mod_private:
- db_type: sql
- mod_pubsub:
- db_type: sql
- access_createnode: pubsub_createnode
- ignore_pep_from_offline: true
- last_item_cache: false
- plugins:
- - "flat"
- - "hometree"
- - "pep"
- mod_mix: []
- mod_roster:
- versioning: true
- store_current_id: true
- db_type: sql
- mod_mam:
- db_type: sql
- mod_vcard:
- db_type: sql
- mod_vcard_xupdate:
- db_type: sql
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "mysql.localhost":
- sql_username: "@@mysql_user@@"
- sql_type: mysql
- sql_server: "@@mysql_server@@"
- sql_port: @@mysql_port@@
- sql_pool_size: 1
- sql_password: "@@mysql_pass@@"
- sql_database: "@@mysql_db@@"
- auth_method: sql
- sm_db_type: sql
- modules:
- mod_announce:
- db_type: sql
- access: local
- mod_blocking: []
- mod_caps:
- db_type: sql
- mod_last:
- db_type: sql
- mod_muc:
- db_type: sql
- mod_offline:
- db_type: sql
- mod_privacy:
- db_type: sql
- mod_private:
- db_type: sql
- mod_pubsub:
- db_type: sql
- access_createnode: pubsub_createnode
- ignore_pep_from_offline: true
- last_item_cache: false
- plugins:
- - "flat"
- - "hometree"
- - "pep"
- mod_mix: []
- mod_roster:
- versioning: true
- store_current_id: true
- db_type: sql
- mod_mam:
- db_type: sql
- mod_vcard:
- db_type: sql
- mod_vcard_xupdate:
- db_type: sql
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "mnesia.localhost":
- auth_method: internal
- modules:
- mod_announce:
- db_type: internal
- access: local
- mod_blocking: []
- mod_caps:
- db_type: internal
- mod_last:
- db_type: internal
- mod_muc:
- db_type: internal
- mod_offline:
- db_type: internal
- mod_privacy:
- db_type: internal
- mod_private:
- db_type: internal
- mod_pubsub:
- access_createnode: pubsub_createnode
- ignore_pep_from_offline: true
- last_item_cache: false
- plugins:
- - "flat"
- - "hometree"
- - "pep"
- mod_mix: []
- mod_roster:
- versioning: true
- store_current_id: true
- db_type: internal
- mod_mam:
- db_type: internal
- mod_vcard:
- db_type: internal
- mod_vcard_xupdate:
- db_type: internal
- mod_carboncopy: []
- mod_client_state:
- queue_presence: true
- queue_chat_states: true
- queue_pep: true
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "redis.localhost":
- auth_method: internal
- sm_db_type: redis
- modules:
- mod_announce:
- db_type: internal
- access: local
- mod_blocking: []
- mod_caps:
- db_type: internal
- mod_last:
- db_type: internal
- mod_muc:
- db_type: internal
- mod_offline:
- db_type: internal
- mod_privacy:
- db_type: internal
- mod_private:
- db_type: internal
- mod_pubsub:
- access_createnode: pubsub_createnode
- ignore_pep_from_offline: true
- last_item_cache: false
- plugins:
- - "flat"
- - "hometree"
- - "pep"
- mod_mix: []
- mod_roster:
- versioning: true
- store_current_id: true
- db_type: internal
- mod_mam:
- db_type: internal
- mod_vcard:
- db_type: internal
- mod_vcard_xupdate:
- db_type: internal
- mod_carboncopy: []
- mod_client_state:
- queue_presence: true
- queue_chat_states: true
- queue_pep: true
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "riak.localhost":
- auth_method: riak
- modules:
- mod_announce:
- db_type: riak
- access: local
- mod_blocking: []
- mod_caps:
- db_type: riak
- mod_last:
- db_type: riak
- mod_muc:
- db_type: riak
- mod_offline:
- db_type: riak
- mod_privacy:
- db_type: riak
- mod_private:
- db_type: riak
- mod_roster:
- versioning: true
- store_current_id: true
- db_type: riak
- mod_vcard:
- db_type: riak
- mod_vcard_xupdate:
- db_type: riak
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "localhost":
- auth_method: internal
- "ldap.localhost":
- ldap_servers:
- - "localhost"
- ldap_rootdn: "cn=admin,dc=localhost"
- ldap_port: 1389
- ldap_password: "password"
- ldap_base: "ou=users,dc=localhost"
- auth_method: ldap
- modules:
- mod_vcard_ldap: []
- mod_roster: [] # mod_roster is required by mod_shared_roster
- mod_shared_roster_ldap:
- ldap_auth_check: off
- ldap_base: "dc=localhost"
- ldap_rfilter: "(objectClass=posixGroup)"
- ldap_gfilter: "(&(objectClass=posixGroup)(cn=%g))"
- ldap_memberattr: "memberUid"
- ldap_ufilter: "(uid=%u)"
- ldap_userdesc: "cn"
- mod_adhoc: []
- mod_configure: []
- mod_disco: []
- mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
- subject: "Welcome!"
- body: "Hi.
-Welcome to this XMPP server."
- mod_stats: []
- mod_time: []
- mod_version: []
- "extauth.localhost":
- extauth_program: "python extauth.py"
- auth_method: external
-hosts:
- - "localhost"
- - "mnesia.localhost"
- - "redis.localhost"
- - "mysql.localhost"
- - "pgsql.localhost"
- - "extauth.localhost"
- - "ldap.localhost"
- - "riak.localhost"
- - "sqlite.localhost"
-access:
- announce:
- admin: allow
- c2s:
- blocked: deny
- all: allow
- c2s_shaper:
- admin: none
- all: normal
- configure:
- admin: allow
- local:
- local: allow
- max_user_offline_messages:
- admin: 5000
- all: 100
- max_user_sessions:
- all: 10
- muc:
- all: allow
- muc_admin:
- admin: allow
- muc_create:
- local: allow
- pubsub_createnode:
- local: allow
- register:
- all: allow
- s2s_shaper:
- all: fast
-acl:
- local:
+include_config_file:
+ - macros.yml
+ - ejabberd.extauth.yml
+ - ejabberd.ldap.yml
+ - ejabberd.mnesia.yml
+ - ejabberd.mysql.yml
+ - ejabberd.pgsql.yml
+ - ejabberd.redis.yml
+ - ejabberd.sqlite.yml
+
+host_config:
+ pgsql.localhost: PGSQL_CONFIG
+ sqlite.localhost: SQLITE_CONFIG
+ mysql.localhost: MYSQL_CONFIG
+ mnesia.localhost: MNESIA_CONFIG
+ redis.localhost: REDIS_CONFIG
+ ldap.localhost: LDAP_CONFIG
+ extauth.localhost: EXTAUTH_CONFIG
+ localhost:
+ auth_method:
+ - internal
+ - anonymous
+
+hosts:
+ - localhost
+ - mnesia.localhost
+ - redis.localhost
+ - mysql.localhost
+ - pgsql.localhost
+ - extauth.localhost
+ - ldap.localhost
+ - sqlite.localhost
+
+shaper_rules:
+ c2s_shaper:
+ none: admin
+ normal: all
+ max_user_offline_messages:
+ infinity: all
+ max_user_sessions:
+ 10: all
+ s2s_shaper:
+ fast: all
+
+access_rules:
+ announce:
+ allow: admin
+ c2s:
+ deny: blocked
+ allow: all
+ configure:
+ allow: admin
+ local:
+ allow: local
+ muc:
+ allow: all
+ muc_admin:
+ allow: admin
+ muc_create:
+ allow: local
+ pubsub_createnode:
+ allow: local
+ register:
+ allow: all
+
+acl:
+ local:
user_regexp: ""
-define_macro:
- CERTFILE: "cert.pem"
-language: "en"
-listen:
- -
- port: @@c2s_port@@
+language: en
+listen:
+ -
+ port: C2S_PORT
module: ejabberd_c2s
max_stanza_size: 65536
- certfile: CERTFILE
zlib: true
starttls: true
+ tls_verify: true
shaper: c2s_shaper
access: c2s
- resume_timeout: 3
- -
- port: @@s2s_port@@
+ -
+ port: S2S_PORT
module: ejabberd_s2s_in
- -
- port: @@web_port@@
+ -
+ port: WEB_PORT
module: ejabberd_http
- captcha: true
-loglevel: @@loglevel@@
+ request_handlers:
+ "/api": mod_http_api
+ "/upload": mod_http_upload
+ "/captcha": ejabberd_captcha
+ -
+ port: COMPONENT_PORT
+ module: ejabberd_service
+ password: PASSWORD
+loglevel: LOGLEVEL
max_fsm_queue: 1000
-modules:
+queue_type: file
+modules:
mod_adhoc: []
+ mod_announce: []
mod_configure: []
mod_disco: []
mod_ping: []
- mod_proxy65: []
- mod_register:
- welcome_message:
+ mod_proxy65:
+ port: PROXY_PORT
+ vcard: VCARD
+ mod_muc:
+ vcard: VCARD
+ mod_muc_admin: []
+ mod_carboncopy: []
+ mod_jidprep: []
+ mod_mam: []
+ mod_last: []
+ mod_register:
+ welcome_message:
subject: "Welcome!"
body: "Hi.
Welcome to this XMPP server."
mod_stats: []
+ mod_s2s_dialback: []
+ mod_legacy_auth: []
+ mod_stream_mgmt:
+ max_ack_queue: 10
+ resume_timeout: 3
mod_time: []
mod_version: []
+ mod_http_upload:
+ docroot: PRIV_DIR
+ put_url: PUT_URL
+ get_url: GET_URL
+ max_size: 10000
+ vcard: VCARD
registration_timeout: infinity
-shaper:
+route_subdomains: s2s
+s2s_use_starttls: false
+ca_file: CAFILE
+c2s_cafile: CAFILE
+outgoing_s2s_port: S2S_PORT
+shaper:
fast: 50000
- normal: 1000
+ normal: 10000
+certfiles:
+ - CERTFILE
+
+new_sql_schema: NEW_SCHEMA
+
+api_permissions:
+ "public commands":
+ who: all
+ what: "*"
diff --git a/test/ejabberd_SUITE_data/extauth.py b/test/ejabberd_SUITE_data/extauth.py
index 84c000144..b6a217fcc 100755
--- a/test/ejabberd_SUITE_data/extauth.py
+++ b/test/ejabberd_SUITE_data/extauth.py
@@ -3,20 +3,31 @@ import struct
def read():
(pkt_size,) = struct.unpack('>H', sys.stdin.read(2))
- pkt = sys.stdin.read(pkt_size).split(':')
- cmd = pkt[0]
- args_num = len(pkt) - 1
- if cmd == 'auth' and args_num >= 3:
+ pkt = sys.stdin.read(pkt_size)
+ cmd = pkt.split(':')[0]
+ if cmd == 'auth':
+ u, s, p = pkt.split(':', 3)[1:]
+ if u == "wrong":
+ write(False)
+ else:
+ write(True)
+ elif cmd == 'isuser':
+ u, s = pkt.split(':', 2)[1:]
+ if u == "wrong":
+ write(False)
+ else:
+ write(True)
+ elif cmd == 'setpass':
+ u, s, p = pkt.split(':', 3)[1:]
write(True)
- elif cmd == 'isuser' and args_num == 2:
+ elif cmd == 'tryregister':
+ u, s, p = pkt.split(':', 3)[1:]
write(True)
- elif cmd == 'setpass' and args_num >= 3:
+ elif cmd == 'removeuser':
+ u, s = pkt.split(':', 2)[1:]
write(True)
- elif cmd == 'tryregister' and args_num >= 3:
- write(True)
- elif cmd == 'removeuser' and args_num == 2:
- write(True)
- elif cmd == 'removeuser3' and args_num >= 3:
+ elif cmd == 'removeuser3':
+ u, s, p = pkt.split(':', 3)[1:]
write(True)
else:
write(False)
diff --git a/test/ejabberd_SUITE_data/gencerts.sh b/test/ejabberd_SUITE_data/gencerts.sh
new file mode 100755
index 000000000..6975fe422
--- /dev/null
+++ b/test/ejabberd_SUITE_data/gencerts.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Update openssl.cnf if needed (in particular section [alt_names])
+
+rm -rf ssl
+mkdir -p ssl/newcerts
+touch ssl/index.txt
+echo 01 > ssl/serial
+echo 1000 > ssl/crlnumber
+openssl genrsa -out ca.key 2048
+openssl req -new -days 10000 -x509 -key ca.key -out ca.pem -batch
+openssl genrsa -out ssl/client.key
+openssl req -new -key ssl/client.key -out ssl/client.csr -config openssl.cnf -batch -subj /C=AU/ST=Some-State/O=Internet\ Widgits\ Pty\ Ltd/CN=localhost
+openssl ca -keyfile ca.key -cert ca.pem -in ssl/client.csr -out ssl/client.crt -config openssl.cnf -days 10000 -batch -notext -policy policy_anything
+openssl req -new -key ssl/client.key -out ssl/self-signed-client.csr -batch -subj /C=AU/ST=Some-State/O=Internet\ Widgits\ Pty\ Ltd/CN=localhost
+openssl x509 -req -in ssl/self-signed-client.csr -signkey ssl/client.key -out ssl/self-signed-client.crt -days 10000
+cat ssl/client.crt > cert.pem
+cat ssl/self-signed-client.crt > self-signed-cert.pem
+cat ssl/client.key >> cert.pem
+cat ssl/client.key >> self-signed-cert.pem
+rm -rf ssl
diff --git a/test/ejabberd_SUITE_data/macros.yml b/test/ejabberd_SUITE_data/macros.yml
new file mode 100644
index 000000000..fdd467584
--- /dev/null
+++ b/test/ejabberd_SUITE_data/macros.yml
@@ -0,0 +1,128 @@
+define_macro:
+ CERTFILE: cert.pem
+ CAFILE: ca.pem
+ C2S_PORT: @@c2s_port@@
+ S2S_PORT: @@s2s_port@@
+ WEB_PORT: @@web_port@@
+ COMPONENT_PORT: @@component_port@@
+ PROXY_PORT: @@proxy_port@@
+ PASSWORD: >-
+ @@password@@
+ LOGLEVEL: @@loglevel@@
+ PRIV_DIR: "@@priv_dir@@"
+ PUT_URL: "http://upload.@HOST@:@@web_port@@/upload"
+ GET_URL: "http://upload.@HOST@:@@web_port@@/upload"
+ NEW_SCHEMA: @@new_schema@@
+ MYSQL_USER: "@@mysql_user@@"
+ MYSQL_SERVER: "@@mysql_server@@"
+ MYSQL_PORT: @@mysql_port@@
+ MYSQL_PASS: "@@mysql_pass@@"
+ MYSQL_DB: "@@mysql_db@@"
+ PGSQL_USER: "@@pgsql_user@@"
+ PGSQL_SERVER: "@@pgsql_server@@"
+ PGSQL_PORT: @@pgsql_port@@
+ PGSQL_PASS: "@@pgsql_pass@@"
+ PGSQL_DB: "@@pgsql_db@@"
+ VCARD:
+ version: "1.0"
+ fn: Full Name
+ n:
+ family: Family
+ given: Given
+ middle: Middle
+ prefix: Prefix
+ suffix: Suffix
+ nickname: Nickname
+ photo:
+ type: image/png
+ extval: https://domain.tld/photo.png
+ binval: >-
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAA
+ AACklEQVR4AWNoAAAAggCBTBfX3wAAAABJRU5ErkJggg==
+ bday: 2000-01-01
+ adr:
+ -
+ home: true
+ work: true
+ postal: true
+ parcel: true
+ dom: true
+ intl: true
+ pref: true
+ pobox: Pobox
+ extadd: Extadd
+ street: Street
+ locality: Locality
+ region: Region
+ pcode: Pcode
+ ctry: Ctry
+ label:
+ -
+ home: true
+ work: true
+ postal: true
+ parcel: true
+ dom: true
+ intl: true
+ pref: true
+ line:
+ - Line1
+ - Line2
+ tel:
+ -
+ home: true
+ work: true
+ voice: true
+ fax: true
+ pager: true
+ msg: true
+ cell: true
+ video: true
+ bbs: true
+ modem: true
+ isdn: true
+ pcs: true
+ pref: true
+ number: +7-900-01-02
+ email:
+ -
+ home: true
+ work: true
+ internet: true
+ pref: true
+ x400: true
+ userid: user@domain.tld
+ jabberid: user@domain.tld
+ mailer: Mailer
+ tz: TZ
+ geo:
+ lat: "12.0"
+ lon: "21.0"
+ title: Title
+ role: Role
+ logo:
+ type: image/png
+ extval: https://domain.tld/logo.png
+ binval: >-
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAA
+ AACklEQVR4AWNoAAAAggCBTBfX3wAAAABJRU5ErkJggg==
+ categories:
+ - Cat1
+ - Cat2
+ note: Note
+ prodid: ProdID
+ rev: Rev
+ sort_string: SortString
+ sound:
+ phonetic: Phonetic
+ extval: https://domain.tld/sound.ogg
+ binval: >-
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQAAAAA3bvkkAA
+ AACklEQVR4AWNoAAAAggCBTBfX3wAAAABJRU5ErkJggg==
+ uid: UID
+ url: https://domain.tld
+ class: public
+ key:
+ type: Type
+ cred: Cred
+ desc: Desc
diff --git a/test/ejabberd_SUITE_data/openssl.cnf b/test/ejabberd_SUITE_data/openssl.cnf
new file mode 100644
index 000000000..594653b79
--- /dev/null
+++ b/test/ejabberd_SUITE_data/openssl.cnf
@@ -0,0 +1,322 @@
+#
+# OpenSSL example configuration file.
+# This is mostly being used for generation of certificate requests.
+#
+
+# This definition stops the following lines choking if HOME isn't
+# defined.
+HOME = .
+RANDFILE = $ENV::HOME/.rnd
+
+# Extra OBJECT IDENTIFIER info:
+#oid_file = $ENV::HOME/.oid
+oid_section = new_oids
+
+# To use this configuration file with the "-extfile" option of the
+# "openssl x509" utility, name here the section containing the
+# X.509v3 extensions to use:
+extensions = v3_req
+# (Alternatively, use a configuration file that has only
+# X.509v3 extensions in its main [= default] section.)
+
+[ new_oids ]
+# We can add new OIDs in here for use by 'ca' and 'req'.
+# Add a simple OID like this:
+# testoid1=1.2.3.4
+# Or use config file substitution like this:
+# testoid2=${testoid1}.5.6
+
+####################################################################
+[ ca ]
+default_ca = CA_default # The default ca section
+
+####################################################################
+[ CA_default ]
+
+#dir = ./demoCA # Where everything is kept
+dir = ssl
+certs = $dir/certs # Where the issued certs are kept
+crl_dir = $dir/crl # Where the issued crl are kept
+database = $dir/index.txt # database index file.
+#unique_subject = no # Set to 'no' to allow creation of
+ # several ctificates with same subject.
+new_certs_dir = $dir/newcerts # default place for new certs.
+
+certificate = $dir/cacert.pem # The CA certificate
+serial = $dir/serial # The current serial number
+crlnumber = $dir/crlnumber # the current crl number
+ # must be commented out to leave a V1 CRL
+crl = $dir/crl.pem # The current CRL
+private_key = $dir/private/cakey.pem# The private key
+RANDFILE = $dir/private/.rand # private random number file
+
+x509_extensions = usr_cert # The extentions to add to the cert
+
+# Comment out the following two lines for the "traditional"
+# (and highly broken) format.
+name_opt = ca_default # Subject Name options
+cert_opt = ca_default # Certificate field options
+
+# Extension copying option: use with caution.
+copy_extensions = copy
+
+# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
+# so this is commented out by default to leave a V1 CRL.
+# crlnumber must also be commented out to leave a V1 CRL.
+# crl_extensions = crl_ext
+
+default_days = 365 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = sha256 # which md to use.
+preserve = no # keep passed DN ordering
+
+# A few difference way of specifying how similar the request should look
+# For type CA, the listed attributes must be the same, and the optional
+# and supplied fields are just that :-)
+policy = policy_match
+
+# For the CA policy
+[ policy_match ]
+countryName = match
+stateOrProvinceName = match
+organizationName = match
+organizationalUnitName = optional
+commonName = optional
+emailAddress = optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = optional
+emailAddress = optional
+
+####################################################################
+[ req ]
+default_bits = 1024
+default_keyfile = privkey.pem
+distinguished_name = req_distinguished_name
+attributes = req_attributes
+x509_extensions = v3_ca # The extentions to add to the self signed cert
+
+# Passwords for private keys if not present they will be prompted for
+# input_password = secret
+# output_password = secret
+
+# This sets a mask for permitted string types. There are several options.
+# default: PrintableString, T61String, BMPString.
+# pkix : PrintableString, BMPString.
+# utf8only: only UTF8Strings.
+# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
+# MASK:XXXX a literal mask value.
+# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
+# so use this option with caution!
+string_mask = nombstr
+
+req_extensions = v3_req # The extensions to add to a certificate request
+
+[ req_distinguished_name ]
+countryName = Country Name (2 letter code)
+countryName_default = AU
+countryName_min = 2
+countryName_max = 2
+
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = Some-State
+
+localityName = Locality Name (eg, city)
+
+0.organizationName = Organization Name (eg, company)
+0.organizationName_default = Internet Widgits Pty Ltd
+
+# we can do this but it is not needed normally :-)
+#1.organizationName = Second Organization Name (eg, company)
+#1.organizationName_default = World Wide Web Pty Ltd
+
+organizationalUnitName = Organizational Unit Name (eg, section)
+#organizationalUnitName_default =
+
+commonName = Common Name (eg, YOUR name)
+commonName_max = 64
+
+emailAddress = Email Address
+emailAddress_max = 64
+
+# SET-ex3 = SET extension number 3
+
+[ req_attributes ]
+challengePassword = A challenge password
+challengePassword_min = 4
+challengePassword_max = 20
+
+unstructuredName = An optional company name
+
+[ usr_cert ]
+
+# These extensions are added when 'ca' signs a request.
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+crlDistributionPoints = URI:http://localhost:5280/data/crl.der
+authorityInfoAccess = OCSP;URI:http://localhost:5280/ocsp
+
+[ v3_req ]
+
+# Extensions to add to a certificate request
+
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+extendedKeyUsage = OCSPSigning,serverAuth,clientAuth
+subjectAltName = @alt_names
+
+[alt_names]
+DNS.1 = *.localhost
+otherName.1 = 1.3.6.1.5.5.7.8.5;UTF8:"test_single!#$%^*()`~+-;_=[]{}|\\@localhost"
+
+[ v3_ca ]
+crlDistributionPoints = URI:http://localhost:5280/data/crl.der
+
+# Extensions for a typical CA
+
+
+# PKIX recommendation.
+
+subjectKeyIdentifier=hash
+
+authorityKeyIdentifier=keyid:always,issuer:always
+
+# This is what PKIX recommends but some broken software chokes on critical
+# extensions.
+#basicConstraints = critical,CA:true
+# So we do this instead.
+basicConstraints = CA:true
+
+# Key usage: this is typical for a CA certificate. However since it will
+# prevent it being used as an test self-signed certificate it is best
+# left out by default.
+# keyUsage = cRLSign, keyCertSign
+
+# Some might want this also
+# nsCertType = sslCA, emailCA
+
+# Include email address in subject alt name: another PKIX recommendation
+# subjectAltName=email:copy
+# Copy issuer details
+# issuerAltName=issuer:copy
+
+# DER hex encoding of an extension: beware experts only!
+# obj=DER:02:03
+# Where 'obj' is a standard or added object
+# You can even override a supported extension:
+# basicConstraints= critical, DER:30:03:01:01:FF
+
+[ crl_ext ]
+
+# CRL extensions.
+# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
+
+# issuerAltName=issuer:copy
+authorityKeyIdentifier=keyid:always,issuer:always
+
+[ proxy_cert_ext ]
+# These extensions should be added when creating a proxy certificate
+
+# This goes against PKIX guidelines but some CAs do it and some software
+# requires this to avoid interpreting an end user certificate as a CA.
+
+basicConstraints=CA:FALSE
+
+# Here are some examples of the usage of nsCertType. If it is omitted
+# the certificate can be used for anything *except* object signing.
+
+# This is OK for an SSL server.
+# nsCertType = server
+
+# For an object signing certificate this would be used.
+# nsCertType = objsign
+
+# For normal client use this is typical
+# nsCertType = client, email
+
+# and for everything including object signing:
+# nsCertType = client, email, objsign
+
+# This is typical in keyUsage for a client certificate.
+# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid,issuer:always
+
+# This stuff is for subjectAltName and issuerAltname.
+# Import the email address.
+# subjectAltName=email:copy
+# An alternative to produce certificates that aren't
+# deprecated according to PKIX.
+# subjectAltName=email:move
+
+# Copy subject details
+# issuerAltName=issuer:copy
+
+#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
+#nsBaseUrl
+#nsRevocationUrl
+#nsRenewalUrl
+#nsCaPolicyUrl
+#nsSslServerName
+
+# This really needs to be in place for it to be a proxy certificate.
+proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/test/ejabberd_SUITE_data/self-signed-cert.pem b/test/ejabberd_SUITE_data/self-signed-cert.pem
new file mode 100644
index 000000000..29fc38d36
--- /dev/null
+++ b/test/ejabberd_SUITE_data/self-signed-cert.pem
@@ -0,0 +1,47 @@
+-----BEGIN CERTIFICATE-----
+MIIDOTCCAiECFHMoNo36Xx0BWkzS8nwvCPGnHnHRMA0GCSqGSIb3DQEBCwUAMFkx
+CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
+cm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0xODA5
+MjQxMzE4MjRaFw00NjAyMDkxMzE4MjRaMFkxCzAJBgNVBAYTAkFVMRMwEQYDVQQI
+DApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQx
+EjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBANaEDDeDGf8BH+EjO3IcB2fspkOSp7eOVWdI5oKZyhcdKfniaDXoL78GP/ND
+Vk5nIGxp6q7iYjoeQBFDQ7Qg+Rv+9KM9lh4GQWZLi7KKRGv9rA5sMb1G79X/5g/I
+h3A2llLygMuE1BxXhw0C9vByaJvRO24GGnXroXm8GXLG7pTxXj8Pn1jO4y1sZDGA
+pX7Hc7Aa4Hq22VT5wLo++3Bl2UkOqfeozj4if5ozlQsFibXZasJntgAuAMCmHVs3
+N2LMPJREv7mzGvpT9RIfWiPHnaRyJQuZ2DS1U1muF8OgrQL6syrTTSc8MqW0d33A
+12lr7ztxmN8Dh1Qv8MgrC/El3O0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAhM+Q
+qt4IlM1SMb74L5GO2JKGVSUbZmaFJEZcjlrcHkw+Tfc5SMxaj7JpTPg7OGNY1L/3
+HnUDdaDRZ5xVOxUF7gTBWDAgkO7En5YfvvEYXUYUk7wwpFrqUqQpluqQIxr+Zf6l
+pZFLhKIANa4wayKtZ9v4uBtRjnm9Hj7gQHeWN9sueIq7d4HO5lubYlzu1+6qeP+L
+M0ciNhsUPypCwVcLPB+1Eo925QBwAhXsvPD9yKFQg1M7XxcJSy0w3DwWQsTTsEbk
+8c/vIF/IhkOJHQDTKa+VSJM+hZgmx/PsyVdbWRSCAusiZpjHKhzzTCNEloGp/Vbm
+5y/OeAK2TGPTg9I91w==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpgIBAAKCAQEA1oQMN4MZ/wEf4SM7chwHZ+ymQ5Knt45VZ0jmgpnKFx0p+eJo
+NegvvwY/80NWTmcgbGnqruJiOh5AEUNDtCD5G/70oz2WHgZBZkuLsopEa/2sDmwx
+vUbv1f/mD8iHcDaWUvKAy4TUHFeHDQL28HJom9E7bgYadeuhebwZcsbulPFePw+f
+WM7jLWxkMYClfsdzsBrgerbZVPnAuj77cGXZSQ6p96jOPiJ/mjOVCwWJtdlqwme2
+AC4AwKYdWzc3Ysw8lES/ubMa+lP1Eh9aI8edpHIlC5nYNLVTWa4Xw6CtAvqzKtNN
+JzwypbR3fcDXaWvvO3GY3wOHVC/wyCsL8SXc7QIDAQABAoIBAQDUwGX1cHsJ5C2f
+9ndwtsfJlHVZs0vPysR9CVpE0Q4TWoNVJ+0++abRB/vI4lHotHL90xZEmJXfGj1k
+YZf2QHWQBI7Qj7Yg1Qdr0yUbz/IIQLCyJTA3jvEzBvc/VByveBQi9Aw0zOopqc1x
+ZC1RT8bcMumEN11q8mVV/O4oXZAl+mQIbRRt6JIsRtoW8hpB1e2ipHItDMNpSnzA
+6PqcddDyDDePgi5lMOaeV9un60A6pI/+uvmw16R1Io+DyYRnxds3HJ/ccI0Co1P1
+khA75QLdnoniYO+oQrq/wGvm+Uq1seh6iuj+SOWvCdB03vPmGYxPKMSW9AtX8xbJ
+J9lboi3pAoGBAPBaiUYn9F+Zt9oJTHhAimZgs1ub5xVEFwVhYJtFBT3E1rQWRKuf
+kiU1JRq7TB3MGaC4zGi2ql12KV3AqFhwLKG6sKtlo/IJhJfe3DgWmBVYBBifkgYs
+mxmA6opgyjbjDEMn6RA+Jov5H267AsnaB4cCB1Jjra6GIdIoMvPghHZXAoGBAOR6
+7VC6E+YX5VJPCZiN0h0aBT+Hl4drYQKvZHp5N8RIBkvmcQHEJgsrUKdirFZEXW6y
+WvepwI4C/Xl61y64/DZ7rum/gpAEPdzSkefKysHAiqkMRcIpjiRxTPJ547ZJycjP
+E+jzcYfLwQvCW9ZiYl+KdYRbpqBFQC8aWqixFxRbAoGBAJQTsy79vpiHY7V4tRwA
+50NboCR4UE3RvT0bWSFPzILZmk0oyvXRQYCa1Vk6uxJAhCl4sLZyk1MxURrpbs3N
+jjG1itKNtAuRwZavPo1vnhLIPv3MkXIsWQHFYroOF4bpKszU8cmIAMeLm8nkfTtO
+kASlQ02HC6HSEVQgYAPP9svRAoGBANiOnwKl7Bhpy8TQ/zJmMaG9uP23IeuL3l4y
+KdVfsXjMH5OvLqtS5BAwFPkiMGBv2fMC/+/AKK8xrFiJEw3I7d0iK+6Hw1OHga8c
+soh1kOpF+ecyp6fZxU1LSniFCU0M8UHw7Fke7RueBzKDHJK9m6oczTgPuoYsPSKo
+IwfDGjIDAoGBAMJVkInntV8oDPT1WYpOAZ3Z0myCDZVBbjxx8kE4RSJIsFeNSiTO
+nhLWCqoG11PVTUzhpYItCjp4At/dG8OQY7WWm0DJJQB38fEqA6JKWpgeWwUdkk8j
+anCrNUBEuzt3UPSZ17DGCw2+J+mwsg1nevaFIXy0gN2zPtTBWtacznPL
+-----END RSA PRIVATE KEY-----