2FAuth/tests/Data/MigrationTestData.php
2024-07-06 16:05:48 +02:00

736 lines
32 KiB
PHP

<?php
namespace Tests\Data;
class MigrationTestData
{
const GOOGLE_AUTH_MIGRATION_URI = 'otpauth-migration://offline?data=CiQKCgcNEp61iE2P0RYSB2FjY291bnQaB3NlcnZpY2UgASgBMAIKLAoKBw0SnrWITY/RFhILYWNjb3VudF9iaXMaC3NlcnZpY2VfYmlzIAEoATACEAEYASAA';
const INVALID_GOOGLE_AUTH_MIGRATION_URI = 'otpauthmigration://offline?data=CiQKCgcNEp61iE2P0RYSB2FjY291bnQaB3NlcnZpY2UgASgBMAIKLAoKBw0SnrWITY/RFhILYWNjb3VudF9iaXMaC3NlcnZpY2VfYmlzIAEoATACEAEYASAA';
const GOOGLE_AUTH_MIGRATION_URI_WITH_INVALID_DATA = 'otpauth-migration://offline?data=CiQKCgcNEp61iE2P0RYSB2FjY291bnQaB3NlcnZpY';
const VALID_PLAIN_TEXT_PAYLOAD = OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . PHP_EOL .
OtpTestData::HOTP_FULL_CUSTOM_URI_NO_IMG . PHP_EOL .
PHP_EOL .
OtpTestData::STEAM_TOTP_URI . PHP_EOL .
PHP_EOL;
const VALID_PLAIN_TEXT_PAYLOAD_WITH_INTRUDER = OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . PHP_EOL .
OtpTestData::HOTP_FULL_CUSTOM_URI_NO_IMG . PHP_EOL .
'This is an intruder line' . PHP_EOL .
OtpTestData::STEAM_TOTP_URI;
const INVALID_PLAIN_TEXT_NO_URI = '
XJGTDRUUKZH3X7TQN2QZUGCGXZCC5LXE
';
const INVALID_PLAIN_TEXT_ONLY_EMPTY_LINES = '
';
const PLAIN_TEXT_PAYLOAD_WITH_INVALID_URI = OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . PHP_EOL .
'otpauth://totp/';
const VALID_AEGIS_JSON_MIGRATION_PAYLOAD = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"entries": [
{
"type": "totp",
"uuid": "fb2ebd05-9d71-4b2e-9d4e-b7f8d2942bfb",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": null,
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"period": ' . OtpTestData::PERIOD_CUSTOM . '
}
},
{
"type": "hotp",
"uuid": "e1b3f683-d5fe-4126-b616-8c8abd8ad97c",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": null,
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"counter": ' . OtpTestData::COUNTER_CUSTOM . '
}
},
{
"type": "steamtotp",
"uuid": "9fb06143-421d-46e1-a7e9-4aafe44b0e72",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::STEAM . '",
"note": "",
"icon": "null",
"info": {
"secret": "' . OtpTestData::STEAM_SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_DEFAULT . '",
"digits": ' . OtpTestData::DIGITS_STEAM . ',
"period": ' . OtpTestData::PERIOD_DEFAULT . '
}
}
]
}
}';
const VALID_AEGIS_JSON_MIGRATION_PAYLOAD_WITH_SVG_ICON = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"entries": [
{
"type": "totp",
"uuid": "fb2ebd05-9d71-4b2e-9d4e-b7f8d2942bfb",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": "' . OtpTestData::ICON_SVG_DATA_ENCODED . '",
"icon_mime": "image\/svg+xml",
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"period": ' . OtpTestData::PERIOD_CUSTOM . '
}
}
]
}
}';
const VALID_AEGIS_JSON_MIGRATION_PAYLOAD_WITH_PNG_ICON = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"entries": [
{
"type": "totp",
"uuid": "fb2ebd05-9d71-4b2e-9d4e-b7f8d2942bfb",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoAQMAAAB3bUanAAAABlBMVEUAAAD///+l2Z",
"icon_mime": "image\/png",
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"period": ' . OtpTestData::PERIOD_CUSTOM . '
}
}
]
}
}';
const VALID_AEGIS_JSON_MIGRATION_PAYLOAD_WITH_JPG_ICON = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"entries": [
{
"type": "totp",
"uuid": "fb2ebd05-9d71-4b2e-9d4e-b7f8d2942bfb",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAFA3PEY8MlBGQUZaVVBfeMiCeG5uePWvuZHI////////////////////////////////////////////////////2wBDAVVaWnhpeOuCguv/////////////////////////////////////////////////////////////////////////wAARCAAyADIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCIeUkEbNFvLZ/iI6GpYlTzYHRNu7dkZz0oWJ/KVHt923ODvx1p6I/mxfudiJn+LPWgBjWyJEwf5duMSdc/h+lP+0JJL8i7nX7nOM56/wCTUVsGkVU3bo+d64xj0569fSpIY1haENH+8bdznp/TpQA+4RXnhVhkHd/Kq8JgllCeRjPfealUyusEoXeRuzyB7UJGyMGW1wR/00oAoUVP9kn/ALn6j/GigBqOsM4ZTvA/DPFWI5E80yEbtv3penX2/T9aaZIgshaTzi+OMFelSCNZp2cx7426NnGMD069aAG5SL5JYPLR+p356U1IGkswfvH+AdMc8/5NAMQnjNsu485GSO3vU9yGKsm7JfGxcenXn/GgCAW6qse5cyHPyZ+9+PQYHNSFGZpLdRiMY5/u9/qcmorh3jlX99udc/w4xmrbmUsUVdo/v5B/T9KAKP2Sf+5+o/xoo+yT/wBz9R/jRQBbSeV1DLBkH/bFRLEnmqj2+3dnB356UwxPLbQ7Fzjdnn3qWNGRrZWGCN1AEcSRBXPnbo+N42kfT36+lSQuyQQtnEY3b/z49+vpStNmJJ/KzjP8XTt+OaJNjWwjh53/AHR64PPWgBlvAjxRkx7t2dzbsYp1sjSwKrDEYz/wLn8xg/nUUccCZMp3I33G5GfXp/WiO3drYsjZ39Vx1wfWgB/+m/520VN5s/8Az7/+PiigDMqez/4+U/H+RoooAm07/lp+H9aIP+XX/gdFFABB/wAuv/A6mi/4+Z/+A/yoooAzKKKKAP/Z",
"icon_mime": "image\/jpeg",
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"period": ' . OtpTestData::PERIOD_CUSTOM . '
}
}
]
}
}';
const VALID_AEGIS_JSON_MIGRATION_PAYLOAD_WITH_UNSUPPORTED_ICON = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"entries": [
{
"type": "totp",
"uuid": "fb2ebd05-9d71-4b2e-9d4e-b7f8d2942bfb",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoAQMAAAB3bUanAAAABlBMVEUAAAD///+l2Z",
"icon_mime": "image\/gif",
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"period": ' . OtpTestData::PERIOD_CUSTOM . '
}
}
]
}
}';
const VALID_2FAS_MIGRATION_PAYLOAD = '{
"groups":
[{
"id": "C2F69014-C4C7-4EEC-9225-D24E750F77FD",
"name": "Test",
"isExpanded": true
}],
"schemaVersion": 2,
"appOrigin": "ios",
"appVersionCode": 32001,
"services":
[{
"secret": "' . OtpTestData::SECRET . '",
"badge": {"color": "Default"},
"order": {"position": 1},
"otp":
{
"account": "' . OtpTestData::ACCOUNT . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"counter": 0,
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"tokenType": "TOTP"
},
"updatedAt": 1657529430000,
"name": "' . OtpTestData::SERVICE . '",
"type": "ManuallyAdded"
},
{
"secret": "' . OtpTestData::SECRET . '",
"badge": {"color": "Default"},
"order": {"position": 2},
"otp":
{
"account": "' . OtpTestData::ACCOUNT . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"counter": ' . OtpTestData::COUNTER_CUSTOM . ',
"period": 30,
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"tokenType": "HOTP"
},
"updatedAt": 1657529430000,
"name": "' . OtpTestData::SERVICE . '",
"type": "ManuallyAdded",
"icon":
{
"selected": "Brand",
"brand":
{
"id": "ManuallyAdded"
},
"label":
{
"text": "OW",
"backgroundColor": "LightBlue"
}
}
}],
"appVersionName": "3.20.1"
}';
const VALID_2FAS_MIGRATION_PAYLOAD_WITH_UNSUPPORTED_OTP_TYPE = '{
"groups":
[{
"id": "C2F69014-C4C7-4EEC-9225-D24E750F77FD",
"name": "Test",
"isExpanded": true
}],
"schemaVersion": 2,
"appOrigin": "ios",
"appVersionCode": 32001,
"services":
[{
"secret": "' . OtpTestData::SECRET . '",
"badge": {"color": "Default"},
"order": {"position": 1},
"otp":
{
"account": "' . OtpTestData::ACCOUNT . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"counter": 0,
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"tokenType": "TOTP"
},
"updatedAt": 1657529430000,
"name": "' . OtpTestData::SERVICE . '",
"type": "ManuallyAdded"
},
{
"secret": "' . OtpTestData::SECRET . '",
"badge": {"color": "Default"},
"order": {"position": 2},
"otp":
{
"account": "' . OtpTestData::ACCOUNT . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"counter": ' . OtpTestData::COUNTER_CUSTOM . ',
"period": 30,
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"tokenType": "XOTP"
},
"updatedAt": 1657529430000,
"name": "' . OtpTestData::SERVICE . '",
"type": "ManuallyAdded"
}],
"appVersionName": "3.20.1"
}';
const INVALID_2FAS_MIGRATION_PAYLOAD = '{
"groups":
[{
"id": "C2F69014-C4C7-4EEC-9225-D24E750F77FD",
"name": "Test",
"isExpanded": true
}],
"schemaVersion": 2,
"appOrigin": "ios",
"appVersionCode": 32001,
"service__BAD__NAME___s":
[{
"secret": "' . OtpTestData::SECRET . '",
"badge": {"color": "Default"},
"order": {"position": 1},
"otp":
{
"account": "' . OtpTestData::ACCOUNT . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"counter": 0,
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"tokenType": "TOTP"
},
"updatedAt": 1657529430000,
"name": "' . OtpTestData::SERVICE . '",
"type": "ManuallyAdded"
}],
"appVersionName": "3.20.1"
}';
const ENCRYPTED_2FAS_MIGRATION_PAYLOAD = '
{
"reference": "RPKUw+hful0yPrvxaDjt2IZWMVgesKPMgJQ/U8CzT6I+eyPo9+yO1xX7jdYYS0aD3DGghxXBN6diIjTe5wKhbWXGvBdCF1a528j1/bgY0cn+MCXf0eG6uQ7oE+idBXeFZsXk5oxqZEA5waYsuwBenILCHqzU7mIlzqUXcNyb3gFF+AhkQGlfUBKeVcIXrbuTuwbtA8IwgJfV8klsUFH96EGsiCMQ2v2MCXVaqFR3TlTMfj4iDg9ULktnKisxfm6O3B/XQtsiDVpnhqQzFSqktbh9vKOrO2NgK40kLmgRkS08SpxiC4Yt0CoGyp9bgLYySdQDvKMnbYxVatx6AJpckVuA7ICiQjbHa5mItGITU78=:yrDmOf1HirJ5N7wlYXyUmL0EtNy2t5oNpvQw1rV22nA=:8MwK8sWyL3iVv+6w",
"schemaVersion": 2,
"appVersionCode": 32001,
"services":
[],
"groups":
[
{
"id": "C2F69014-C4C7-4EEC-9225-D24E750F77FD",
"name": "Test",
"isExpanded": true
}
],
"appOrigin": "ios",
"servicesEncrypted": "xlH6lrz/oW/TJO2WExdt33bI4CvCjE/W2wlcl+8VVbRj/BHrYujY7AexaenaBhoJUB0xeOMDL1q2swvtVYQZLAMFoBcg4XMEVfk5R6R0SjwJd7/cvcv89nKNDX/eHtIHKoaDkgFxk4Po9YN1OtG0M/jXH9DdERu+LAJHboLK8VpnehOJTbs/s0vahrw0q4jZiHGCfV7vXrylsuEjXBVv90/dT0mZE5iiPIteWCJyxl+04cuTLMl6kMUXem0OGTsqOLmmSMVz8sCrf6HRzqH8KFj1sR6h+MGVdsVij8f99O4ZB+tCCy0A3BY8Yn68J8aBAOUU4nzETAl0Zhc489E9X9eibMLkaBt452gfwXU/9muIeA2WM8so3sM6SPQVls8xYu653z7bh7WCCIjrJmZ10DVydK9Krjoe6nd+DQjuNy/vcNFeCe6/CljF3KWfWyNRdcwaUH+yKZE/TFw3P+ZuvudnfHRBE6OsE3c/XmxnI66mSy+SePhmIoe9x0rxC5T5LM5Fw+bWBLR6mLXo1ouxxrljeboqJ4THR6a2x8hhhP8wvK30v/PDPyLTtBdLv+HilQibXF9YqVH562BhlmhLAe5dv67srP6JwK10tAo5TfhKjewMqTouOiCqT+/mvvqpTV/1f676mzF7s1Rh83ikfqzT/u5OJrFqZdu3tC86KqCLIDx0fQYF/Ha88tXPkVGvPXygH3Adgf7c8spyC9s3yeAAtSSc/qtIpm1Ux5XvaZx3M9cD9ku0KLJqE+rJr0HS2AatS54I/ybdHSbMLaPRdV67jeM1OwCkY5F+FXQpFfcQkpmgCMTvFddnkhUqTR8GgqXcOg2aPcwNQ/EqhIJr+sXqfFS85+eSlroErvUuR9gO/awB2XA4NsZI6bHK9GNebcSTmA16FhiuAFpOqfWcdN3iPeKS/kcUJ8KRlsAO0x9UINnkwJtpSGSA8bdXkOFfnd4rPPDcBGrx7dBtPC+Sc5Y8nvbkLcxn8/CCFgenQByPwGLUp4NuMz8H1/1EwNQ4jF5swoqdnhz6ldBAF+T1trOzQEmpFfG54lur3yEoiYipaZ5WTKJnp6X0GHkgT3Wi0N0im4oGEsqyPEEknm17BamooqRo1JMPA6+cp90udr91DKeLxzRBi8rYaolQjaATbc6rvufcoCuEdOYpGqWfX6mGKD/jmHko4RaoM+7cx6LaH5zRdpBLDzr1aW0TJSAHGgTuTiMJwW73MBaayUf+X+alzlXpcyDlWW+aGpSsYI/TkKTPaIgQFcNWa/+1ayUyg1Tmvuf1J6YgyQJNBVf2LV06I+TziUHPGkwwN7nj/0chqw4sv29I4mpI41C6a/NnoSCa3Vz448DPlk1e80KyMba722gBMTCyU+S1K/UtVE7cPchOETL7X5tl6yoyeh95jbpYX4kJhXHNFZ5XA7d0tFxmYF0mSN5+D63jP2tTqPW7lsz3No9y+VFhQLWTEShrBck1blgNXRFdUCDX5zN4vSYmt44vYGWl3+iDNhYysVh2x2bAGOxCR5EPNPNuUjrxCHRtt8X7Xof7/R0fZF4Qi/F1o6D/ToUpp4XZ/3sjJ1BTouw2Jpx/f2gGDwzFq8uql46eeBgqiQwCSYZTbSSYliVaXh01jJltfqFaMMQF9UGehNdcsAHaLr53I8snMJZLl4IIGwtNgb9cHZYXYM68RtP0UPBntCFA74fWMBVcLLfbpUcGe5fuj4CoBo5gCakYygnsvlqcsmXNR/zaf5xIOC009qVUU0BO+qtgt+TGxAn4K9jgxVOCzR7TPGPvwaOajURwcutj9QXUKuqHz9LwIYZLLzDd2OQxkDoPKfLqKSLP4ZXpKiRP8LkgvZE91ZgxJgCy37STqO1py/VyrHjT3OOmbZ6srwaIOJhZ8/YGh6mecA7n4qJsJUepvD3sbAF0FZJE0xu1kkw=:yrDmOf1HirJ5N7wlYXyUmL0EtNy2t5oNpvQw1rV22nA=:ZhgkRGr/vRf6K1ri",
"appVersionName": "3.20.1"
}';
const VALID_AEGIS_JSON_MIGRATION_PAYLOAD_WITH_UNSUPPORTED_OTP_TYPE = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"entries": [
{
"type": "totp",
"uuid": "fb2ebd05-9d71-4b2e-9d4e-b7f8d2942bfb",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": null,
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"period": ' . OtpTestData::PERIOD_CUSTOM . '
}
},
{
"type": "xotp",
"uuid": "e1b3f683-d5fe-4126-b616-8c8abd8ad97c",
"name": "",
"issuer": "",
"note": "",
"icon": null,
"info": {
"secret": "",
"algo": "",
"digits": 0,
"counter": 0
}
}
]
}
}';
const INVALID_AEGIS_JSON_MIGRATION_PAYLOAD = '
{
"version": 1,
"header": {
"slots": null,
"params": null
},
"db": {
"version": 2,
"thisIsNotTheCorrectKeyName": [
{
"type": "totp",
"uuid": "5be1b189-260d-4fe1-930a-a78cb669dd86",
"name": "' . OtpTestData::ACCOUNT . '",
"issuer": "' . OtpTestData::SERVICE . '",
"note": "",
"icon": null,
"info": {
"secret": "' . OtpTestData::SECRET . '",
"algo": "' . OtpTestData::ALGORITHM_DEFAULT . '",
"digits": ' . OtpTestData::DIGITS_DEFAULT . ',
"period": ' . OtpTestData::PERIOD_DEFAULT . '
}
}
]
}
}';
const ENCRYPTED_AEGIS_JSON_MIGRATION_PAYLOAD = '
{
"version": 1,
"header": {
"slots": [
{
"type": 1,
"uuid": "1f447956-c71c-4be4-8192-97197dc67df7",
"key": "d742967686cae462c5732023a72d59245d8q7c5c93a66aeb2q2a350bb8b6a7ae",
"key_params": {
"nonce": "77a8ff6d84265efd2a3ed9b7",
"tag": "cc13fb4a5baz3fd27bc97f5eacaa00d0"
},
"n": 32768,
"r": 8,
"p": 1,
"salt": "1c245b2696b948dt040c30c538aeb6f9620b054d9ff182f33dd4b285b67bed51",
"repaired": true
}
],
"params": {
"nonce": "f31675d9966d2z588bd07788",
"tag": "ad5729fa135dc6d6sw87e0c955932661"
}
},
"db": "1rX0ajzsxNbhN2hvnNCMBNooLlzqwz\/LMT3bNEIJjPH+zIvIbA6GVVPHLpna+yvjxLPKVkt1OQig=="
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": null,
"icon_mime": null,
"icon_file": null,
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
},
{
"otp_type": "hotp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": null,
"icon_mime": null,
"icon_file": null,
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": null,
"counter": ' . OtpTestData::COUNTER_CUSTOM . ',
"legacy_uri": "' . OtpTestData::HOTP_FULL_CUSTOM_URI_NO_IMG . '"
},
{
"otp_type": "steamtotp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::STEAM . '",
"icon": null,
"icon_mime": null,
"icon_file": null,
"secret": "' . OtpTestData::STEAM_SECRET . '",
"digits": ' . OtpTestData::DIGITS_STEAM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::STEAM_TOTP_URI . '"
}
]
}';
const VALID_2FAUTH_MIGRATION_PAYLOAD_WITH_UNSUPPORTED_OTP_TYPE = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": null,
"icon_mime": null,
"icon_file": null,
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
},
{
"otp_type": "Xotp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": null,
"icon_mime": null,
"icon_file": null,
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_SVG_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_SVG . '",
"icon_mime": "image\/svg+xml",
"icon_file": "' . OtpTestData::ICON_SVG_DATA_ENCODED . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_JPG_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_JPEG . '",
"icon_mime": "image\/jpeg",
"icon_file": "' . OtpTestData::ICON_JPEG_DATA . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_PNG_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_PNG . '",
"icon_mime": "image\/png",
"icon_file": "' . OtpTestData::ICON_PNG_DATA . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_BMP_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_BMP . '",
"icon_mime": "image\/bmp",
"icon_file": "' . OtpTestData::ICON_BMP_DATA . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_XBMP_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_BMP . '",
"icon_mime": "image\/x-ms-bmp",
"icon_file": "' . OtpTestData::ICON_BMP_DATA . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_WEBP_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_WEBP . '",
"icon_mime": "image\/webp",
"icon_file": "' . OtpTestData::ICON_WEBP_DATA . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const VALID_2FAUTH_JSON_MIGRATION_PAYLOAD_WITH_UNSUPPORTED_ICON = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
{
"otp_type": "totp",
"account": "' . OtpTestData::ACCOUNT . '",
"service": "' . OtpTestData::SERVICE . '",
"icon": "' . OtpTestData::ICON_PNG . '",
"icon_mime": "image\/gif",
"icon_file": "' . OtpTestData::ICON_PNG_DATA . '",
"secret": "' . OtpTestData::SECRET . '",
"digits": ' . OtpTestData::DIGITS_CUSTOM . ',
"algorithm": "' . OtpTestData::ALGORITHM_CUSTOM . '",
"period": ' . OtpTestData::PERIOD_CUSTOM . ',
"counter": null,
"legacy_uri": "' . OtpTestData::TOTP_FULL_CUSTOM_URI_NO_IMG . '"
}
]
}';
const INVALID_2FAUTH_JSON_MIGRATION_PAYLOAD = '
{
"app": "2fauth_v3.4.1",
"schema": 1,
"datetime": "2022-12-14T14:53:06.173939Z",
"data":
[
,
]
}';
}