diff --git a/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_accounts_profile.json b/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_accounts_profile.json index 0db4500..ac9b474 100644 --- a/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_accounts_profile.json +++ b/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_accounts_profile.json @@ -1,13 +1,13 @@ { "_status": 0, "avatarColor": null, - "creationDate": "2024-11-14T08:04:44.115516Z", + "creationDate": "2024-11-23T11:18:36.511506Z", "culture": "en-US", "email": "test-argon2@laverse.net", "emailVerified": true, "forcePasswordReset": false, - "id": "1fb04aed-e337-421f-8733-6918a57deba9", - "key": "2.YLUXGJXj2Zmr/wPcM84h5A==|TemiHY2vEV4wCDsgSGwhSbEE73+glGG3q1WHbr6TMPSLFabJKVttjQ5tL0QShK69EYngoptcdbwzzLA9+l2HoQNc0nvnuRH0NsHPPo4ty2A=|sMF1KcE0sRq0vN6dK7pn+tZhAACWdjC382yIUTGaVGQ=", + "id": "d79664fd-d5f2-462b-b0ab-50bd34c83be5", + "key": "2.sIZM3kcUqusGny8J9ElI3w==|PrnIrYGTeYjzYzRBQf92h1DQHBFopxvAjG5irJ1ZPzYyA3142BxbTEKT9OQXb8McZT5MhVjJ4IA4N9noQkTIq7GsdKnYuVQNu+D4EjTeQFs=|NXaUQEIyBpiloqG8c86NYDQ5U9pT+YxlgOx6o/pB8mo=", "masterPasswordHint": null, "name": "test-argon2@laverse.net", "object": "profile", @@ -23,9 +23,9 @@ "familySponsorshipValidUntil": null, "flexibleCollections": false, "hasPublicAndPrivateKeys": true, - "id": "e8cea274-21b9-44ca-aca9-5c0465ba32cd", + "id": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "identifier": null, - "key": "4.dKLdrx9WUSmibi5FXFWtMV12C+WTu16zlNp/nNaYRixjU6nrLRMQ46J/eY4TR4H1rdkTbINTXs1tVwAtd5240dePWcO1QPjy3cjrljar1pA/U7iXgE+7FQqhQsFmhQexNlM9AEa4LJsmaI6t7p48JNtpIKiDPMbOxqR3bP4UBB1EEmfXZv5/XG2ZsCKkESIUm15NcfxmkkPGUQX1vFFf5/rzUd6hLinc8TqZeoU8X9aeD0zjcjENmeleFTatt2DVgEFb0cuV7r+oLm4U30xqLqbhDG6CZlS6Htj0UAv4d8w72uYBuB6xaUOm7ce2lUjiWZnVhOZzwIOpJfpHrNz7hA==", + "key": "4.GuAVQ5DsYCJ2TSxKiedr1IJwX2V2Vw+s1H5L+Gr5ei3//qB/jML/KCKa7Qde0d8sGtLUH2xkJuBfwm8gLN/oYiZNgCZjlVmq23Z42PDN0pdprBeHOpOfUQd/98ACTCaYYmeVgaKhrpyruBcynbvxXHZgrkQLgeD9LLpxcY5ZsyF4YrFjX7aBaoVOo1T4F2zUrcY4GcSS+7qZo1xhIsAk4CnUgBm32SysM9m2IQjfbVLfO37ZoGBkNVktDuX60dF11PPAh/+BMeTtoV5GaSXpHoaiXUYmuoAFUlrRvgObdG48d5EnwZx2zw2vhFe5pkulW/qQG+Eg+CEK4TlWndnnkg==", "keyConnectorEnabled": false, "keyConnectorUrl": null, "limitCollectionCreationDeletion": false, @@ -33,7 +33,7 @@ "maxStorageGb": 32767, "name": "test-organization", "object": "profileOrganization", - "organizationUserId": "d18fa1fa-bb6d-4f74-b8fc-3bb579679160", + "organizationUserId": "97fbc2a0-94ff-43ee-8e17-a59e8bb61bb5", "permissions": { "accessEventLogs": false, "accessImportExport": false, @@ -76,16 +76,16 @@ "useSecretsManager": false, "useSso": false, "useTotp": true, - "userId": "1fb04aed-e337-421f-8733-6918a57deba9", + "userId": "d79664fd-d5f2-462b-b0ab-50bd34c83be5", "usersGetPremium": true } ], "premium": true, "premiumFromOrganization": false, - "privateKey": "2.db9fmNK4ae/Xji/twiJ9qw==|zolavYIiVdejd1yiBN29gzx+4eMp/QCBr8BUzZo8tOxSfXtf9aPOu1dYnNZ2+69dh3CdL+ihFZGSL7SVY2fX1ET6/LYAfnCFsrfYH0EMpuPV/eaYUD2X5bVvl78rl9XCZ9uDNzBxGddRcPDzn5eRD/yRUlJMBuCkJh0VZBchPTFJNYkSnujeDpjhuN7hQ3oh4lnHGELGxNGVcWFHk/ytUomER+KxrWsaFfZk5ZiNi9WVafY+XEy3Wjgv7Qa3NOE5iFnOkX4r4P3UWOUOjMjzRgX9In52i+W+/PgyNGblZeuvDT9qmQ7wRvDdQ/LqDl8tuPWju3bKu5wTqHMvfvKUUfEEO9Es3M+4XviAJXoXresu/L+juzdJQjmYDSZzpUd3M2Bbqkf5L1kCqGrJGzhlzjHKD4LwGB15o5XM5m/ydTZdcPMQ0zL3YcnMiVBSoyxryIo2XRdKc2DScX+/sME/3Me9xeVqaufUgiQlCceISXVaezr30FSIBtLHq7yhS+uQ4VtRBOhz3T6vKoaJzSqoDzJS54lN/VmSWBfRFyaIxN6Fp8Cy/dFveARt6L4XqtTU/NbIShPOaZnUrUTmWuP7hqOnLyXMRpiGsM3Y3JjCD+LtxC+XMUjDD7EcdAJh+uDn/vCf5wIYMQSl/K3fhdj3sfVh93pziWgX5lwEIbuCoXL5r/akzWExqjP8Wgn4qegl5L+0bV+iLe75F1csW7NH3Zvdx9s2gVQ4+jXIcVg0zJxcP/nKwUQbhKCM9CQYQu/bGZS5t8odDgKg3Is/OONj/d/E8clGdDi40aM1JLPy5H5ZSWHZEQ2ARdg0TDEwzdypyPdlxofoOZIgOPb8L7TjXfftyB91jMPwpWNs8+HBeM6RC04ERoIn//zPhXM3C7W3vuO2lQtXA/SwyReZedUEU8JY/tKWMxP4A7lp3raOiafOHFDVMJ/Usm6KnXYItIY19uMiHmR9neg5+USWi3qEULUtkHd8CqIIDKRhblj81xtiOWDoqprBesSUBSEL4i5gCp0yNqhJHqpSD2NBwhMLh8rns0zcC66hUQxISBFCVYSEz6us99f95owbB6CUdlznzKG5+teILtFi9v3EABgzV7w5z+BjSMx6ldBRyyviSAcub2vL88QZp0jbh+vMoQItCmRvGQq2eqlQAlTEKc2CXoTc5WPjPcLBEjDk4CyEvIMStqzC81sNoM7UsA0N/LFXRKQRZBvhsfyG59jTvT0JFZK07dd1muEVmS9bQSb4DzMmlr5hFopZyTYnlDjXH7GFWTcxpeKkXPC+I2bVLj5YTxsEOgQo6sFkxK0CBSqqMckDUKof2rXTcE7MjqCBQ/yM4+VHIdGT8H2SCUHZ+hSoJCL99PJNNqrRJmFdqI5LCQxIOYv0ZyOrwBm8N09Lx9dO0F6GZ+8qfmZhbgmHrVSO/tgKKuucMNHdU2AAw0eRzv/clo3L13MKevjZ07rqGsoyRWLRKroOA6D2g5yIUI/gS9Eep1AODcmjBw1YAnHUxplXU9rZG9FkO8L/MRVi6GNgLSiOjFKIse/Pvw7pBY7OsaZb/ETdAoQldQbfyosM6ZohHeWBA7NKPMYyCahHekjecNvdk0umB71UZJWAQuNd/RUEEVs37cwIg//KV4KUumo=|xatYXbligfJF15051z6hLQKntXkLBE0HZPHX8peTB7E=", + "privateKey": "2.ECDknEW8wDtTPyHhhaf1iA==|2qyLHu997oXe8qtzqoeRH4CYeXDMT9A+cbZ2GP/Ddu+a1kHWdkTvlSKA6mcoNyS/9mGYpi46pAsu+3U18cVLtiQzqsh2JTYmAUTrCCr/kldYbOXW9hcMWYr8Sqe0Tv6Bh5SilV26fFB8E+80xyOV4PiyAYftF/2Yh7w1sTakTW5oCT8bQ0/r3ftiov6hzdFE682Y3zNxAK/C/j3xmfptkKyVHlUHsarL2Eat5I0+p+YDnuNHA8CLkFkvDJ30TqMhEerYsNZ47NqTAaWAtoYbcA5qVCb9nCLgLhnSrK2amzAHNsWWl6Htz1turjKbGjGXyYOCQzJ/Gtmohprug/u6F3DM6ZteJzzHtC0KF051TV+4Sa8V9eMTpDHKdlf4+FZR+uxmqEqB3CRdlfk/Kn1FBJMutieG0CBoLoJH4Q4/6ppmd+6vMD+KGjGsqvviuKncCVl3n2DmjdacvOb/VSCr0ulSRjS+cQ36zIesDLegtDwDIKcxfEJSMlw7A6qi0UHCaBJ9O7GxwsYQFwTt91nSJW0E483R4P/EbSX5oT/TKB6XqjiAORahbqKAmG715sk9STZt5rtqwpnZPThPOQM6OaW7GaX9K4JYGrFdFJtyBdp95enEnsCyX85dHj912g8wfm5CQ2I4WO3dwzse7/JG+ZEzl9tvNhv7TIFkL+snqKSykxQcOLRc0AUdJfp7h2mn4XbeZt4d2mLw96S1vytIH2Xfqy2pJWB6Sjos3hh++O9kZ+kh/TkL2Di+GSV1mdic7DivTlitYHEoy4s8ErrG2nGF/cLsDRLLVzGvkBEgzIcDI850DLIhSXFLknfeqY9UOurN0UErX1jzoxqkD/KTa/rfwQE+FExu/Pxwb+VH6jWbLAbjcvl5f8IJCyA6Q6w+oSBpgklhdyvStMhCuP4PhyW/+RC5cya9451oU0XBQHmYsvY3f8Vrycqp0ZGIN7Va9ZQNADEKa8moX95wnjWAcsuxuTLyPKKB5r+VgKnpG+uedo8Hv3bRdKAAcK22onLGrZFneAumfSh7KVHB3oVHUBmwPcWeqpsDEwzK8QAmgbx70IeNKwX2Kl6hQBU4sLbMqu3isJc83xQzS6FkR+ZCrSQd/kdxkhICg97xDSTY86DTvSfayEV3K96cGrus67UT7z2pmBIT820NDMahkaijTp99o5Ak1RG7t7zDV0WACTcgWL0vYkgvK3nQup8e4mx/KLjfw5B+j/Biha+kNgd3CdpX0T1GPx+BTpY62+JnzzyKuOUFBQKkIKOVdGDuOf8V1WvsT7HDvlbff/gU1fuQi0RlRIYQqvgKUGLYcC232Ocv20aEEjMsk5YReTiOCIHaG/50ysDMVZu4KViuH4rn5WnGKZFtwA03VpSIt2SDcEA7Vco+5TJyQ6FGs5RG3Aa5o83oH553WMx5KWkFBPDOQFlGpfRjpe/VDBf/jK7VJi2XtCrIw0Avh/Vd3ENdhy/bnJ29d0IMg7aebYt00Jd038wTXZyWupAcjazf+nhOMF/b1EhjICxHxVbebS4jTfEqqsnKn/V3ZIEJBudZrvZNVGnK66D8k1/y7ZqlqjCg1bxenuvzEqmcyvoNa0rRuFXFsxTqEh8p+RXtlDCeUcfOTE5jqfPbbImT1DhsWAwuHV8=|KFMznObIF+l9VvhVcNweDJ3I5PMQnGFj5WBXKmxu9jg=", "providerOrganizations": [], "providers": [], - "securityStamp": "dc880b60-602e-43de-958b-074f0876ec7e", + "securityStamp": "cc5e9b6b-1e12-40e9-b388-433c20dbcb4e", "twoFactorEnabled": false, "usesKeyConnector": false } \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_sync.json b/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_sync.json index e0446c7..aa30e06 100644 --- a/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_sync.json +++ b/internal/bitwarden/embedded/fixtures/test-argon2_GET_api_sync.json @@ -1,77 +1,40 @@ { "ciphers": [ - { - "attachments": null, - "card": null, - "collectionIds": [], - "creationDate": "2024-11-14T08:04:44.469237Z", - "data": { - "fields": [], - "name": "2.Sc1VOdw9fSsUWg7JShcKmQ==|dmg2s3uPmEDIcO0e6Zx971Q3cSSkxdc/RxrT7nM0pS4=|ZeRGlEOZOYR5EoMx56ANPd54Vbn78cYF/fRj5BROsfE=", - "notes": null, - "passwordHistory": [], - "uri": null, - "username": "2.zcLB4Rr/TkqFLPeT+h1N2g==|dhCSSRjRFoEM7D1DBL4hmg==|r1R0oLrIIpzZk9+fwnfVuorbqCGIuG1QlM3/zi9p27E=" - }, - "deletedDate": null, - "edit": true, - "favorite": false, - "fields": [], - "folderId": null, - "id": "7e72cfb4-1739-47dc-903b-8c67f2235c35", - "identity": null, - "key": "2.isVk1CUW5dYHQCOxKKTnnQ==|0tv6DwLODbuq78nevPqjvCVh3DGOarP5hRcADzE8gJhIJH4akBQU/cbD4cV5zM9TFrC7Hg8qA/2ifBTyWEdKbYLXM2apjfXi9gBevnAezPQ=|e/uIvjEg7okfrNlRUApKEAC6+lnRM/rRKPumZ8aXJco=", - "login": { - "uri": null, - "username": "2.zcLB4Rr/TkqFLPeT+h1N2g==|dhCSSRjRFoEM7D1DBL4hmg==|r1R0oLrIIpzZk9+fwnfVuorbqCGIuG1QlM3/zi9p27E=" - }, - "name": "2.Sc1VOdw9fSsUWg7JShcKmQ==|dmg2s3uPmEDIcO0e6Zx971Q3cSSkxdc/RxrT7nM0pS4=|ZeRGlEOZOYR5EoMx56ANPd54Vbn78cYF/fRj5BROsfE=", - "notes": null, - "object": "cipherDetails", - "organizationId": null, - "organizationUseTotp": true, - "passwordHistory": [], - "reprompt": 0, - "revisionDate": "2024-11-14T08:04:44.469331Z", - "secureNote": null, - "type": 1, - "viewPassword": true - }, { "attachments": null, "card": null, "collectionIds": [ - "63a4a05d-90cf-42d7-ad66-6709e8285fbd" + "2df2346f-3cf3-4ce3-acf3-4eae4d276e5f" ], - "creationDate": "2024-11-14T08:04:44.609689Z", + "creationDate": "2024-11-23T11:18:37.246806Z", "data": { "fields": [], - "name": "2.GqiQCeBx+ye5XL7mXzWfJw==|nhAAh5ZEqrDM10o7xMIleKGvjMTVi3Dr1wLSmPRnmrk=|SWL5azAQwtBT1xkx+8eXJcOaWPF8rC7MBvCGdw3xBsM=", + "name": "2.4QPlERQ5GBZaO47Fr5Ocsg==|K37lzzWHqmF+mhYQnYi7O5TWuVqnGsXZ7Qsg8bPFKCk=|khdUfctIkuWZ3iDMMO2X7WTJd7NYP0EZa+MD2UI883g=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.UoYhwZJJHPivLAh0Whrqkw==|f5fZCafXfF50pRBV+IAsDA==|U8e21amrFh1uSfXC0nlVvK+JwgaORspqWdGWLcKV3G0=" + "username": "2.iDYOwZYyDUBsvs4iJrPAkg==|lUuk9o//A8T24DXRSVKCvg==|yDU7ACNi/oX2BIR2VzSVH/9P1BpzLovLNbZ5lZIQH5Q=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "bff94937-e5c8-4b67-9088-3768c7631399", + "id": "e9d57378-639e-40b1-a989-86e77849455b", "identity": null, - "key": "2.W67M64jt2pXIgz973j35fA==|eUCWG8iS2eeNiP3iUGZHurFSbbYtEz2KN6wH14MTYmjZOczrSmmcwycZmu/E6UNSe4CNVneDJFy1prsmuiPsQWOxUK3xrSDTu2zPPvadXGI=|KwTJFNI138JqTKCuDKCN7hiMWbXs5xAvuLKymAuc2ik=", + "key": "2.TNW3B9CvEd2WcaTwh8IzWw==|GMVJitF6YgkAT/zyEwOQmW2tIr9zEmkgWV2kuoPazddpf4igd4FKZ8bOUTV7oUwOmY/VdvvhnkZFv0eSeDtXlIq6JJKQHX7soYLDMNNTD60=|xvMQgo0TXhNCCZUXMJ2eeqP7lHpLYDYFWHSxbDjsIz0=", "login": { "uri": null, - "username": "2.UoYhwZJJHPivLAh0Whrqkw==|f5fZCafXfF50pRBV+IAsDA==|U8e21amrFh1uSfXC0nlVvK+JwgaORspqWdGWLcKV3G0=" + "username": "2.iDYOwZYyDUBsvs4iJrPAkg==|lUuk9o//A8T24DXRSVKCvg==|yDU7ACNi/oX2BIR2VzSVH/9P1BpzLovLNbZ5lZIQH5Q=" }, - "name": "2.GqiQCeBx+ye5XL7mXzWfJw==|nhAAh5ZEqrDM10o7xMIleKGvjMTVi3Dr1wLSmPRnmrk=|SWL5azAQwtBT1xkx+8eXJcOaWPF8rC7MBvCGdw3xBsM=", + "name": "2.4QPlERQ5GBZaO47Fr5Ocsg==|K37lzzWHqmF+mhYQnYi7O5TWuVqnGsXZ7Qsg8bPFKCk=|khdUfctIkuWZ3iDMMO2X7WTJd7NYP0EZa+MD2UI883g=", "notes": null, "object": "cipherDetails", - "organizationId": "e8cea274-21b9-44ca-aca9-5c0465ba32cd", + "organizationId": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:04:44.609837Z", + "revisionDate": "2024-11-23T11:18:37.247251Z", "secureNote": null, "type": 1, "viewPassword": true @@ -81,45 +44,38 @@ { "externalId": null, "hidePasswords": false, - "id": "63a4a05d-90cf-42d7-ad66-6709e8285fbd", + "id": "2df2346f-3cf3-4ce3-acf3-4eae4d276e5f", "manage": true, - "name": "2.Nqp9ctqJEvhWoNIG2JKYOw==|wUdpBU8mc9dxR55SDDZ3mg==|bXKATjJF8KsxgdxVNXRmOxehIWKqkzMBBBopP0fU3bQ=", + "name": "2.9Y8Se3ncV5HQeOZMxrFVZw==|fazqtThY6/DfDvQ78yBVdg==|xsg1SMT+/0fpv/8uP7aQ0rmanFVEm3ZN/dtMwcTJq7g=", "object": "collectionDetails", - "organizationId": "e8cea274-21b9-44ca-aca9-5c0465ba32cd", + "organizationId": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "readOnly": false }, { "externalId": null, "hidePasswords": false, - "id": "fe73e74b-cf76-4d7a-b189-2dc3b719d843", + "id": "7d0c9a94-80ec-4b9d-abac-490b8417d70f", "manage": true, - "name": "2.m5b4I3Z2sz+2hMk1EC+juw==|wqKhbqIE2OIpmNW0pFAiu4OBHVYDNTDio+ky7GpXeI8=|jCa0gKrn/qJlASTtZ/FKrat1z70F2HhKVHtp3UXpzKQ=", + "name": "2.yTSeAqLUIjXFe7TIZUIpsg==|2B2YXokr5ZOQ+gD1IfB3c1ZCS8xeFmW5HaTOp1pLjBs=|XvEPq9IuwwRuYnTOLckBb4cOLLWQoEsn1OIvbVQwI2M=", "object": "collectionDetails", - "organizationId": "e8cea274-21b9-44ca-aca9-5c0465ba32cd", + "organizationId": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "readOnly": false } ], "domains": null, - "folders": [ - { - "id": "9637f68b-5e93-4a69-8db5-7bc5c3f33e74", - "name": "2.yVXsxY+5zfWln6kPVtT/Gg==|pYrY5agwTB5c+QSdDhAXP3z7cg3Q9NItNsIIJKQc6Zo=|8iv26Xhmsqf7pjEmpD6DmBw/ZZLhyLpMr2zpe84tEH8=", - "object": "folder", - "revisionDate": "2024-11-14T08:04:44.472692Z" - } - ], + "folders": [], "object": "sync", "policies": [], "profile": { "_status": 0, "avatarColor": null, - "creationDate": "2024-11-14T08:04:44.115516Z", + "creationDate": "2024-11-23T11:18:36.511506Z", "culture": "en-US", "email": "test-argon2@laverse.net", "emailVerified": true, "forcePasswordReset": false, - "id": "1fb04aed-e337-421f-8733-6918a57deba9", - "key": "2.YLUXGJXj2Zmr/wPcM84h5A==|TemiHY2vEV4wCDsgSGwhSbEE73+glGG3q1WHbr6TMPSLFabJKVttjQ5tL0QShK69EYngoptcdbwzzLA9+l2HoQNc0nvnuRH0NsHPPo4ty2A=|sMF1KcE0sRq0vN6dK7pn+tZhAACWdjC382yIUTGaVGQ=", + "id": "d79664fd-d5f2-462b-b0ab-50bd34c83be5", + "key": "2.sIZM3kcUqusGny8J9ElI3w==|PrnIrYGTeYjzYzRBQf92h1DQHBFopxvAjG5irJ1ZPzYyA3142BxbTEKT9OQXb8McZT5MhVjJ4IA4N9noQkTIq7GsdKnYuVQNu+D4EjTeQFs=|NXaUQEIyBpiloqG8c86NYDQ5U9pT+YxlgOx6o/pB8mo=", "masterPasswordHint": null, "name": "test-argon2@laverse.net", "object": "profile", @@ -135,9 +91,9 @@ "familySponsorshipValidUntil": null, "flexibleCollections": false, "hasPublicAndPrivateKeys": true, - "id": "e8cea274-21b9-44ca-aca9-5c0465ba32cd", + "id": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "identifier": null, - "key": "4.dKLdrx9WUSmibi5FXFWtMV12C+WTu16zlNp/nNaYRixjU6nrLRMQ46J/eY4TR4H1rdkTbINTXs1tVwAtd5240dePWcO1QPjy3cjrljar1pA/U7iXgE+7FQqhQsFmhQexNlM9AEa4LJsmaI6t7p48JNtpIKiDPMbOxqR3bP4UBB1EEmfXZv5/XG2ZsCKkESIUm15NcfxmkkPGUQX1vFFf5/rzUd6hLinc8TqZeoU8X9aeD0zjcjENmeleFTatt2DVgEFb0cuV7r+oLm4U30xqLqbhDG6CZlS6Htj0UAv4d8w72uYBuB6xaUOm7ce2lUjiWZnVhOZzwIOpJfpHrNz7hA==", + "key": "4.GuAVQ5DsYCJ2TSxKiedr1IJwX2V2Vw+s1H5L+Gr5ei3//qB/jML/KCKa7Qde0d8sGtLUH2xkJuBfwm8gLN/oYiZNgCZjlVmq23Z42PDN0pdprBeHOpOfUQd/98ACTCaYYmeVgaKhrpyruBcynbvxXHZgrkQLgeD9LLpxcY5ZsyF4YrFjX7aBaoVOo1T4F2zUrcY4GcSS+7qZo1xhIsAk4CnUgBm32SysM9m2IQjfbVLfO37ZoGBkNVktDuX60dF11PPAh/+BMeTtoV5GaSXpHoaiXUYmuoAFUlrRvgObdG48d5EnwZx2zw2vhFe5pkulW/qQG+Eg+CEK4TlWndnnkg==", "keyConnectorEnabled": false, "keyConnectorUrl": null, "limitCollectionCreationDeletion": false, @@ -145,7 +101,7 @@ "maxStorageGb": 32767, "name": "test-organization", "object": "profileOrganization", - "organizationUserId": "d18fa1fa-bb6d-4f74-b8fc-3bb579679160", + "organizationUserId": "97fbc2a0-94ff-43ee-8e17-a59e8bb61bb5", "permissions": { "accessEventLogs": false, "accessImportExport": false, @@ -188,16 +144,16 @@ "useSecretsManager": false, "useSso": false, "useTotp": true, - "userId": "1fb04aed-e337-421f-8733-6918a57deba9", + "userId": "d79664fd-d5f2-462b-b0ab-50bd34c83be5", "usersGetPremium": true } ], "premium": true, "premiumFromOrganization": false, - "privateKey": "2.db9fmNK4ae/Xji/twiJ9qw==|zolavYIiVdejd1yiBN29gzx+4eMp/QCBr8BUzZo8tOxSfXtf9aPOu1dYnNZ2+69dh3CdL+ihFZGSL7SVY2fX1ET6/LYAfnCFsrfYH0EMpuPV/eaYUD2X5bVvl78rl9XCZ9uDNzBxGddRcPDzn5eRD/yRUlJMBuCkJh0VZBchPTFJNYkSnujeDpjhuN7hQ3oh4lnHGELGxNGVcWFHk/ytUomER+KxrWsaFfZk5ZiNi9WVafY+XEy3Wjgv7Qa3NOE5iFnOkX4r4P3UWOUOjMjzRgX9In52i+W+/PgyNGblZeuvDT9qmQ7wRvDdQ/LqDl8tuPWju3bKu5wTqHMvfvKUUfEEO9Es3M+4XviAJXoXresu/L+juzdJQjmYDSZzpUd3M2Bbqkf5L1kCqGrJGzhlzjHKD4LwGB15o5XM5m/ydTZdcPMQ0zL3YcnMiVBSoyxryIo2XRdKc2DScX+/sME/3Me9xeVqaufUgiQlCceISXVaezr30FSIBtLHq7yhS+uQ4VtRBOhz3T6vKoaJzSqoDzJS54lN/VmSWBfRFyaIxN6Fp8Cy/dFveARt6L4XqtTU/NbIShPOaZnUrUTmWuP7hqOnLyXMRpiGsM3Y3JjCD+LtxC+XMUjDD7EcdAJh+uDn/vCf5wIYMQSl/K3fhdj3sfVh93pziWgX5lwEIbuCoXL5r/akzWExqjP8Wgn4qegl5L+0bV+iLe75F1csW7NH3Zvdx9s2gVQ4+jXIcVg0zJxcP/nKwUQbhKCM9CQYQu/bGZS5t8odDgKg3Is/OONj/d/E8clGdDi40aM1JLPy5H5ZSWHZEQ2ARdg0TDEwzdypyPdlxofoOZIgOPb8L7TjXfftyB91jMPwpWNs8+HBeM6RC04ERoIn//zPhXM3C7W3vuO2lQtXA/SwyReZedUEU8JY/tKWMxP4A7lp3raOiafOHFDVMJ/Usm6KnXYItIY19uMiHmR9neg5+USWi3qEULUtkHd8CqIIDKRhblj81xtiOWDoqprBesSUBSEL4i5gCp0yNqhJHqpSD2NBwhMLh8rns0zcC66hUQxISBFCVYSEz6us99f95owbB6CUdlznzKG5+teILtFi9v3EABgzV7w5z+BjSMx6ldBRyyviSAcub2vL88QZp0jbh+vMoQItCmRvGQq2eqlQAlTEKc2CXoTc5WPjPcLBEjDk4CyEvIMStqzC81sNoM7UsA0N/LFXRKQRZBvhsfyG59jTvT0JFZK07dd1muEVmS9bQSb4DzMmlr5hFopZyTYnlDjXH7GFWTcxpeKkXPC+I2bVLj5YTxsEOgQo6sFkxK0CBSqqMckDUKof2rXTcE7MjqCBQ/yM4+VHIdGT8H2SCUHZ+hSoJCL99PJNNqrRJmFdqI5LCQxIOYv0ZyOrwBm8N09Lx9dO0F6GZ+8qfmZhbgmHrVSO/tgKKuucMNHdU2AAw0eRzv/clo3L13MKevjZ07rqGsoyRWLRKroOA6D2g5yIUI/gS9Eep1AODcmjBw1YAnHUxplXU9rZG9FkO8L/MRVi6GNgLSiOjFKIse/Pvw7pBY7OsaZb/ETdAoQldQbfyosM6ZohHeWBA7NKPMYyCahHekjecNvdk0umB71UZJWAQuNd/RUEEVs37cwIg//KV4KUumo=|xatYXbligfJF15051z6hLQKntXkLBE0HZPHX8peTB7E=", + "privateKey": "2.ECDknEW8wDtTPyHhhaf1iA==|2qyLHu997oXe8qtzqoeRH4CYeXDMT9A+cbZ2GP/Ddu+a1kHWdkTvlSKA6mcoNyS/9mGYpi46pAsu+3U18cVLtiQzqsh2JTYmAUTrCCr/kldYbOXW9hcMWYr8Sqe0Tv6Bh5SilV26fFB8E+80xyOV4PiyAYftF/2Yh7w1sTakTW5oCT8bQ0/r3ftiov6hzdFE682Y3zNxAK/C/j3xmfptkKyVHlUHsarL2Eat5I0+p+YDnuNHA8CLkFkvDJ30TqMhEerYsNZ47NqTAaWAtoYbcA5qVCb9nCLgLhnSrK2amzAHNsWWl6Htz1turjKbGjGXyYOCQzJ/Gtmohprug/u6F3DM6ZteJzzHtC0KF051TV+4Sa8V9eMTpDHKdlf4+FZR+uxmqEqB3CRdlfk/Kn1FBJMutieG0CBoLoJH4Q4/6ppmd+6vMD+KGjGsqvviuKncCVl3n2DmjdacvOb/VSCr0ulSRjS+cQ36zIesDLegtDwDIKcxfEJSMlw7A6qi0UHCaBJ9O7GxwsYQFwTt91nSJW0E483R4P/EbSX5oT/TKB6XqjiAORahbqKAmG715sk9STZt5rtqwpnZPThPOQM6OaW7GaX9K4JYGrFdFJtyBdp95enEnsCyX85dHj912g8wfm5CQ2I4WO3dwzse7/JG+ZEzl9tvNhv7TIFkL+snqKSykxQcOLRc0AUdJfp7h2mn4XbeZt4d2mLw96S1vytIH2Xfqy2pJWB6Sjos3hh++O9kZ+kh/TkL2Di+GSV1mdic7DivTlitYHEoy4s8ErrG2nGF/cLsDRLLVzGvkBEgzIcDI850DLIhSXFLknfeqY9UOurN0UErX1jzoxqkD/KTa/rfwQE+FExu/Pxwb+VH6jWbLAbjcvl5f8IJCyA6Q6w+oSBpgklhdyvStMhCuP4PhyW/+RC5cya9451oU0XBQHmYsvY3f8Vrycqp0ZGIN7Va9ZQNADEKa8moX95wnjWAcsuxuTLyPKKB5r+VgKnpG+uedo8Hv3bRdKAAcK22onLGrZFneAumfSh7KVHB3oVHUBmwPcWeqpsDEwzK8QAmgbx70IeNKwX2Kl6hQBU4sLbMqu3isJc83xQzS6FkR+ZCrSQd/kdxkhICg97xDSTY86DTvSfayEV3K96cGrus67UT7z2pmBIT820NDMahkaijTp99o5Ak1RG7t7zDV0WACTcgWL0vYkgvK3nQup8e4mx/KLjfw5B+j/Biha+kNgd3CdpX0T1GPx+BTpY62+JnzzyKuOUFBQKkIKOVdGDuOf8V1WvsT7HDvlbff/gU1fuQi0RlRIYQqvgKUGLYcC232Ocv20aEEjMsk5YReTiOCIHaG/50ysDMVZu4KViuH4rn5WnGKZFtwA03VpSIt2SDcEA7Vco+5TJyQ6FGs5RG3Aa5o83oH553WMx5KWkFBPDOQFlGpfRjpe/VDBf/jK7VJi2XtCrIw0Avh/Vd3ENdhy/bnJ29d0IMg7aebYt00Jd038wTXZyWupAcjazf+nhOMF/b1EhjICxHxVbebS4jTfEqqsnKn/V3ZIEJBudZrvZNVGnK66D8k1/y7ZqlqjCg1bxenuvzEqmcyvoNa0rRuFXFsxTqEh8p+RXtlDCeUcfOTE5jqfPbbImT1DhsWAwuHV8=|KFMznObIF+l9VvhVcNweDJ3I5PMQnGFj5WBXKmxu9jg=", "providerOrganizations": [], "providers": [], - "securityStamp": "dc880b60-602e-43de-958b-074f0876ec7e", + "securityStamp": "cc5e9b6b-1e12-40e9-b388-433c20dbcb4e", "twoFactorEnabled": false, "usesKeyConnector": false }, diff --git a/internal/bitwarden/embedded/fixtures/test-argon2_POST_api_accounts_api-key.json b/internal/bitwarden/embedded/fixtures/test-argon2_POST_api_accounts_api-key.json index a120677..54be912 100644 --- a/internal/bitwarden/embedded/fixtures/test-argon2_POST_api_accounts_api-key.json +++ b/internal/bitwarden/embedded/fixtures/test-argon2_POST_api_accounts_api-key.json @@ -1,5 +1,5 @@ { - "apiKey": "a9QW1268PiQRE60LlV4cPwfYfi5ThI", + "apiKey": "AVXQxkZOipP4edLsGCW2UxanuxlN9D", "object": "apiKey", - "revisionDate": "2024-11-14T08:04:44.609879Z" + "revisionDate": "2024-11-23T11:18:37.255382Z" } \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-argon2_POST_identity_connect_token.json b/internal/bitwarden/embedded/fixtures/test-argon2_POST_identity_connect_token.json index 13f544d..451a4ad 100644 --- a/internal/bitwarden/embedded/fixtures/test-argon2_POST_identity_connect_token.json +++ b/internal/bitwarden/embedded/fixtures/test-argon2_POST_identity_connect_token.json @@ -3,10 +3,10 @@ "KdfIterations": 3, "KdfMemory": 64, "KdfParallelism": 4, - "Key": "2.YLUXGJXj2Zmr/wPcM84h5A==|TemiHY2vEV4wCDsgSGwhSbEE73+glGG3q1WHbr6TMPSLFabJKVttjQ5tL0QShK69EYngoptcdbwzzLA9+l2HoQNc0nvnuRH0NsHPPo4ty2A=|sMF1KcE0sRq0vN6dK7pn+tZhAACWdjC382yIUTGaVGQ=", - "PrivateKey": "2.db9fmNK4ae/Xji/twiJ9qw==|zolavYIiVdejd1yiBN29gzx+4eMp/QCBr8BUzZo8tOxSfXtf9aPOu1dYnNZ2+69dh3CdL+ihFZGSL7SVY2fX1ET6/LYAfnCFsrfYH0EMpuPV/eaYUD2X5bVvl78rl9XCZ9uDNzBxGddRcPDzn5eRD/yRUlJMBuCkJh0VZBchPTFJNYkSnujeDpjhuN7hQ3oh4lnHGELGxNGVcWFHk/ytUomER+KxrWsaFfZk5ZiNi9WVafY+XEy3Wjgv7Qa3NOE5iFnOkX4r4P3UWOUOjMjzRgX9In52i+W+/PgyNGblZeuvDT9qmQ7wRvDdQ/LqDl8tuPWju3bKu5wTqHMvfvKUUfEEO9Es3M+4XviAJXoXresu/L+juzdJQjmYDSZzpUd3M2Bbqkf5L1kCqGrJGzhlzjHKD4LwGB15o5XM5m/ydTZdcPMQ0zL3YcnMiVBSoyxryIo2XRdKc2DScX+/sME/3Me9xeVqaufUgiQlCceISXVaezr30FSIBtLHq7yhS+uQ4VtRBOhz3T6vKoaJzSqoDzJS54lN/VmSWBfRFyaIxN6Fp8Cy/dFveARt6L4XqtTU/NbIShPOaZnUrUTmWuP7hqOnLyXMRpiGsM3Y3JjCD+LtxC+XMUjDD7EcdAJh+uDn/vCf5wIYMQSl/K3fhdj3sfVh93pziWgX5lwEIbuCoXL5r/akzWExqjP8Wgn4qegl5L+0bV+iLe75F1csW7NH3Zvdx9s2gVQ4+jXIcVg0zJxcP/nKwUQbhKCM9CQYQu/bGZS5t8odDgKg3Is/OONj/d/E8clGdDi40aM1JLPy5H5ZSWHZEQ2ARdg0TDEwzdypyPdlxofoOZIgOPb8L7TjXfftyB91jMPwpWNs8+HBeM6RC04ERoIn//zPhXM3C7W3vuO2lQtXA/SwyReZedUEU8JY/tKWMxP4A7lp3raOiafOHFDVMJ/Usm6KnXYItIY19uMiHmR9neg5+USWi3qEULUtkHd8CqIIDKRhblj81xtiOWDoqprBesSUBSEL4i5gCp0yNqhJHqpSD2NBwhMLh8rns0zcC66hUQxISBFCVYSEz6us99f95owbB6CUdlznzKG5+teILtFi9v3EABgzV7w5z+BjSMx6ldBRyyviSAcub2vL88QZp0jbh+vMoQItCmRvGQq2eqlQAlTEKc2CXoTc5WPjPcLBEjDk4CyEvIMStqzC81sNoM7UsA0N/LFXRKQRZBvhsfyG59jTvT0JFZK07dd1muEVmS9bQSb4DzMmlr5hFopZyTYnlDjXH7GFWTcxpeKkXPC+I2bVLj5YTxsEOgQo6sFkxK0CBSqqMckDUKof2rXTcE7MjqCBQ/yM4+VHIdGT8H2SCUHZ+hSoJCL99PJNNqrRJmFdqI5LCQxIOYv0ZyOrwBm8N09Lx9dO0F6GZ+8qfmZhbgmHrVSO/tgKKuucMNHdU2AAw0eRzv/clo3L13MKevjZ07rqGsoyRWLRKroOA6D2g5yIUI/gS9Eep1AODcmjBw1YAnHUxplXU9rZG9FkO8L/MRVi6GNgLSiOjFKIse/Pvw7pBY7OsaZb/ETdAoQldQbfyosM6ZohHeWBA7NKPMYyCahHekjecNvdk0umB71UZJWAQuNd/RUEEVs37cwIg//KV4KUumo=|xatYXbligfJF15051z6hLQKntXkLBE0HZPHX8peTB7E=", + "Key": "2.sIZM3kcUqusGny8J9ElI3w==|PrnIrYGTeYjzYzRBQf92h1DQHBFopxvAjG5irJ1ZPzYyA3142BxbTEKT9OQXb8McZT5MhVjJ4IA4N9noQkTIq7GsdKnYuVQNu+D4EjTeQFs=|NXaUQEIyBpiloqG8c86NYDQ5U9pT+YxlgOx6o/pB8mo=", + "PrivateKey": "2.ECDknEW8wDtTPyHhhaf1iA==|2qyLHu997oXe8qtzqoeRH4CYeXDMT9A+cbZ2GP/Ddu+a1kHWdkTvlSKA6mcoNyS/9mGYpi46pAsu+3U18cVLtiQzqsh2JTYmAUTrCCr/kldYbOXW9hcMWYr8Sqe0Tv6Bh5SilV26fFB8E+80xyOV4PiyAYftF/2Yh7w1sTakTW5oCT8bQ0/r3ftiov6hzdFE682Y3zNxAK/C/j3xmfptkKyVHlUHsarL2Eat5I0+p+YDnuNHA8CLkFkvDJ30TqMhEerYsNZ47NqTAaWAtoYbcA5qVCb9nCLgLhnSrK2amzAHNsWWl6Htz1turjKbGjGXyYOCQzJ/Gtmohprug/u6F3DM6ZteJzzHtC0KF051TV+4Sa8V9eMTpDHKdlf4+FZR+uxmqEqB3CRdlfk/Kn1FBJMutieG0CBoLoJH4Q4/6ppmd+6vMD+KGjGsqvviuKncCVl3n2DmjdacvOb/VSCr0ulSRjS+cQ36zIesDLegtDwDIKcxfEJSMlw7A6qi0UHCaBJ9O7GxwsYQFwTt91nSJW0E483R4P/EbSX5oT/TKB6XqjiAORahbqKAmG715sk9STZt5rtqwpnZPThPOQM6OaW7GaX9K4JYGrFdFJtyBdp95enEnsCyX85dHj912g8wfm5CQ2I4WO3dwzse7/JG+ZEzl9tvNhv7TIFkL+snqKSykxQcOLRc0AUdJfp7h2mn4XbeZt4d2mLw96S1vytIH2Xfqy2pJWB6Sjos3hh++O9kZ+kh/TkL2Di+GSV1mdic7DivTlitYHEoy4s8ErrG2nGF/cLsDRLLVzGvkBEgzIcDI850DLIhSXFLknfeqY9UOurN0UErX1jzoxqkD/KTa/rfwQE+FExu/Pxwb+VH6jWbLAbjcvl5f8IJCyA6Q6w+oSBpgklhdyvStMhCuP4PhyW/+RC5cya9451oU0XBQHmYsvY3f8Vrycqp0ZGIN7Va9ZQNADEKa8moX95wnjWAcsuxuTLyPKKB5r+VgKnpG+uedo8Hv3bRdKAAcK22onLGrZFneAumfSh7KVHB3oVHUBmwPcWeqpsDEwzK8QAmgbx70IeNKwX2Kl6hQBU4sLbMqu3isJc83xQzS6FkR+ZCrSQd/kdxkhICg97xDSTY86DTvSfayEV3K96cGrus67UT7z2pmBIT820NDMahkaijTp99o5Ak1RG7t7zDV0WACTcgWL0vYkgvK3nQup8e4mx/KLjfw5B+j/Biha+kNgd3CdpX0T1GPx+BTpY62+JnzzyKuOUFBQKkIKOVdGDuOf8V1WvsT7HDvlbff/gU1fuQi0RlRIYQqvgKUGLYcC232Ocv20aEEjMsk5YReTiOCIHaG/50ysDMVZu4KViuH4rn5WnGKZFtwA03VpSIt2SDcEA7Vco+5TJyQ6FGs5RG3Aa5o83oH553WMx5KWkFBPDOQFlGpfRjpe/VDBf/jK7VJi2XtCrIw0Avh/Vd3ENdhy/bnJ29d0IMg7aebYt00Jd038wTXZyWupAcjazf+nhOMF/b1EhjICxHxVbebS4jTfEqqsnKn/V3ZIEJBudZrvZNVGnK66D8k1/y7ZqlqjCg1bxenuvzEqmcyvoNa0rRuFXFsxTqEh8p+RXtlDCeUcfOTE5jqfPbbImT1DhsWAwuHV8=|KFMznObIF+l9VvhVcNweDJ3I5PMQnGFj5WBXKmxu9jg=", "ResetMasterPassword": false, - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJuYmYiOjE3MzE1NzE3MjEsImV4cCI6MTczMTU3ODkyMSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdHxsb2dpbiIsInN1YiI6IjFmYjA0YWVkLWUzMzctNDIxZi04NzMzLTY5MThhNTdkZWJhOSIsInByZW1pdW0iOnRydWUsIm5hbWUiOiJ0ZXN0LWFyZ29uMkBsYXZlcnNlLm5ldCIsImVtYWlsIjoidGVzdC1hcmdvbjJAbGF2ZXJzZS5uZXQiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwic3N0YW1wIjoiZGM4ODBiNjAtNjAyZS00M2RlLTk1OGItMDc0ZjA4NzZlYzdlIiwiZGV2aWNlIjoiMTBhMDA4ODctMzQ1MS00NjA3LTg0NTctZmNiZmRjNjFmYWFhIiwic2NvcGUiOlsiYXBpIl0sImFtciI6WyJBcHBsaWNhdGlvbiJdfQ.oCBfH9qV1OMRA8L8FJHRzxsqOtOZxiixs5y0mGHm70ctvNt0yWo-XKouZvB-PkE6vnofINul6Q7np9jzW52rDGuva6eYgiDld3Qoy0JaOH4NUxOlbTheeS7ew5CWrcAwxOPBrJF4qWG_OMtogHnYD05siF-ImRUwb6cF_xYs5VLrvJNpQbtfPuEIqGoNGKooYN1I75OeH_xwJ7rBxowuUyH_g9B-3IHmgOb2xNJKy5qUe5baKg7OtdfpvLsH1pPi_RaOUhjKos0oCXIwscMMSMjna7XUI-kQKuieF1PbN2bYZaJmZfxF30jKTJvTbBm51b4cw0CNIsE2DNbmMc9GGA", + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJuYmYiOjE3MzIzNjEyODAsImV4cCI6MTczMjM2ODQ4MCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdHxsb2dpbiIsInN1YiI6ImQ3OTY2NGZkLWQ1ZjItNDYyYi1iMGFiLTUwYmQzNGM4M2JlNSIsInByZW1pdW0iOnRydWUsIm5hbWUiOiJ0ZXN0LWFyZ29uMkBsYXZlcnNlLm5ldCIsImVtYWlsIjoidGVzdC1hcmdvbjJAbGF2ZXJzZS5uZXQiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwic3N0YW1wIjoiY2M1ZTliNmItMWUxMi00MGU5LWIzODgtNDMzYzIwZGJjYjRlIiwiZGV2aWNlIjoiMTBhMDA4ODctMzQ1MS00NjA3LTg0NTctZmNiZmRjNjFmYWFhIiwic2NvcGUiOlsiYXBpIl0sImFtciI6WyJBcHBsaWNhdGlvbiJdfQ.RA6c47D7OcMno3-Xn2JbYFDRUGEA4WVEs2iSCINO6Sn9BB1v_oPfk6OkNPhG2tstOkJrAAg-tt3js6aQdQGOUy7rV2u6P4sTSF_u2C1V7qSaOiWmfxMzJWc4iZLnC0DlOfjo5aNyTdXgZh-k0RChajuzcBClZWV8HuuqSZT--vuVtdDoQuXyO7nuVJRqBplaCMLl7GFcYXaynNL5xxcwCgw1-uAib02Nhd_b97H4oRGuHqllx_9ep7sZnQ7PNIZGpOkRe0td2yV76zEBDeVrIGYjNSGpxhwBvyp-pYc42lpl6o15GSxizUBu3fjRu74qUEsE5IvJnODdEGunPtwsMw", "expires_in": 7200, "scope": "api", "token_type": "Bearer" diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_accounts_profile.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_accounts_profile.json index 1631650..99b5838 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_accounts_profile.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_accounts_profile.json @@ -1,13 +1,13 @@ { "_status": 0, "avatarColor": null, - "creationDate": "2024-11-14T08:04:43.308268Z", + "creationDate": "2024-11-23T11:18:35.871274Z", "culture": "en-US", "email": "test-pbkdf@laverse.net", "emailVerified": true, "forcePasswordReset": false, - "id": "4b2f0bec-65db-4a31-8d89-292571952302", - "key": "2.4gCtht9FEtl60l2H/TkeoQ==|88W/oOuQm723ofEUCD1DRunSFZh7k6RchxKU3p13zk1mnLDOOQmQFjkIPAaKDysAxKmWa6Sm+JSley7Y2u4uO5sHm4MLeSoqAyCWbUyl+NE=|9YLLznXlEifIkg0pEaD2MYwgpFy+QBfApNlC7rvbXRY=", + "id": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", + "key": "2.kYim9ojCjWGdD2xKKTNxeA==|OClQo9nS5fH/eEJeB03avcvbi562Rwh1hjTZIuFrLyv78G4CLdVhmMtlOA7fw7JIZNV88/kSIkjkOV5ofz/9epEgjvxYHoKf/b+mSkKflCI=|mFoApA3iJEGyJU6IO3/c16dd9jCjVeOfFnDJRHgAHbg=", "masterPasswordHint": null, "name": "test-pbkdf@laverse.net", "object": "profile", @@ -23,9 +23,9 @@ "familySponsorshipValidUntil": null, "flexibleCollections": false, "hasPublicAndPrivateKeys": true, - "id": "59ab1b06-0f12-4baf-92bb-b562e951a07e", + "id": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "identifier": null, - "key": "4.M2epLQnlju1A2TQxUIV0PGG0Q5EyEwBuESzkuj6XFZg3K6FEPenF1DY3ExAbMyWMw5WQlFT8rr13DaWCujrTMRyxh35RuQ9fM8cy/0KW1kZnMB41elPlOTVqSL6vzbAGIzIKaUq+viur38x3Js9WXXUJCs/Z8Kgg0qnQGoaoEsOCJOIXok/CDMGaYZH1AhEkMwfQ/NnQTZl4rAJo1De0cGVPrx4HsL+iVzxBELn/fH1+Acm/0ty53r/hAMJa0B7XMuDJeZfGtcum/OkYNhuiBevlBryAfg+EAh3SVLLMY6zO6UqYqwC9sD0ZrvF46QU3vsHX8PG9UjxPWuLGHyYQwg==", + "key": "4.LcL2YO3vMqh9ki4EnZzgnxlSui4GUQly5FXhiN7/xPQ++L+nDJ7oJLO3Kg14BkL3me4ifobwuVPAeJ5ye5FiYRfKeAVGwnV4PTkCFt3k7pwfcIp7cW3ZvuCD1C7iTC/pyGWDEdBvP9zR8sEASBYbHPEvkPLWVsxQS/J+dy2pZ91SwwAtxHtXhVA26KRYO/dvwnRTd48FXwSPU5pr0O+h8zUWmH9qbUvGQggB+soKsfjc9O28mKUk1DVqyyrPrrkNoXC/sQI9arWmaw72KKZr8UBCISWK3/ySbIWqUTklgVVmhsVsHkAv9IL5/12zRh/IjKSRTOjhnz1BmwIG6RotqA==", "keyConnectorEnabled": false, "keyConnectorUrl": null, "limitCollectionCreationDeletion": false, @@ -33,7 +33,7 @@ "maxStorageGb": 32767, "name": "test-organization", "object": "profileOrganization", - "organizationUserId": "dc59323b-dc44-4419-9592-00bd9f4b8a89", + "organizationUserId": "56e7ff93-2054-49dc-8060-49a5b471f3d7", "permissions": { "accessEventLogs": false, "accessImportExport": false, @@ -76,16 +76,83 @@ "useSecretsManager": false, "useSso": false, "useTotp": true, - "userId": "4b2f0bec-65db-4a31-8d89-292571952302", + "userId": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", + "usersGetPremium": true + }, + { + "accessSecretsManager": false, + "allowAdminAccessToAllCollectionItems": true, + "enabled": true, + "familySponsorshipAvailable": false, + "familySponsorshipFriendlyName": null, + "familySponsorshipLastSyncDate": null, + "familySponsorshipToDelete": null, + "familySponsorshipValidUntil": null, + "flexibleCollections": false, + "hasPublicAndPrivateKeys": true, + "id": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", + "identifier": null, + "key": "4.RVLVRAuCLdFc+N4qpnctsUKQFC3CEZJ3rAUtHMHqrSk0feMv+MmtEc8jfkVKJGKbk/P8U7E+4KR5kIUI7gQUhqPnfwmPVxnd6LaUVUlCpCEQcShiZS5upuVepv7ucYR1kCP5u4o7lZoMQO9x5Hb86qaE9pTQdN7aEluf3LjUv9C2NAZsCDI9h4iB7J7J9AuPT16qKrYlyy5LjgZuK4PulUZMyCejIt+qX9Jm5xIFcR602GdvVW7EqiEtTTzEndb8CzqAOIlBG3X2KWdaNDp/2mXJR3C6uR8JMlkM83I9qlGE8F7kMsjgtklY1f0X3Sn6x/cgj4mrWfyTqimQ3TT9PA==", + "keyConnectorEnabled": false, + "keyConnectorUrl": null, + "limitCollectionCreationDeletion": false, + "maxCollections": null, + "maxStorageGb": 32767, + "name": "test-organization", + "object": "profileOrganization", + "organizationUserId": "6e3e9b63-54fd-45b5-b672-13d614de9b4f", + "permissions": { + "accessEventLogs": false, + "accessImportExport": false, + "accessReports": false, + "createNewCollections": false, + "deleteAnyCollection": false, + "deleteAssignedCollections": false, + "editAnyCollection": false, + "editAssignedCollections": false, + "manageGroups": false, + "managePolicies": false, + "manageResetPassword": false, + "manageScim": false, + "manageSso": false, + "manageUsers": false + }, + "planProductType": 3, + "productTierType": 3, + "providerId": null, + "providerName": null, + "providerType": null, + "resetPasswordEnrolled": false, + "seats": null, + "selfHost": true, + "ssoBound": false, + "status": 2, + "type": 0, + "use2fa": true, + "useActivateAutofillPolicy": false, + "useApi": true, + "useCustomPermissions": false, + "useDirectory": false, + "useEvents": false, + "useGroups": false, + "useKeyConnector": false, + "usePasswordManager": true, + "usePolicies": true, + "useResetPassword": false, + "useScim": false, + "useSecretsManager": false, + "useSso": false, + "useTotp": true, + "userId": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", "usersGetPremium": true } ], "premium": true, "premiumFromOrganization": false, - "privateKey": "2.TAP/O7Dh5XpYM849H0GOyg==|mh0hjM2nW48b8ouEStI45cukyZgOosJicloJ/4phFV1fwBMYDKCIu7mDjRnkzgBRK+1X3GkbNhXPAWS6coEGyoCakyC/6WgCbJHoLW9c2gJWNteD53Z1H0lgQt3Q72zSY4pKN+++JSgYH3n91tfxREdnp8lLaPuQoNZB4KBO3c73TYR82XrrHDg9LIVc6QvH+WbousAkdwE7m54LIEkMpHGSbqOJunJUJ0rKByuRiZEmWI12OCX8/9MpTiYLl+IIzv//DAVkORJKLRBVhwhtTJ8OyBhbtPpXtS1sMB7gp2KFWlk8bB6ARxpYCFrR5hlR3zwP11nYZ9GmwjrP93CN/Zvre3Hgs5EaTFyQr+1INb1PtCDhHf0j//OoIM3Uc+wcJvZC3ZB8g+NifakbRKGtjKiPjsuyTkCsvM/ryxnimgn2/q7fKrk7NohNcXC5LvMpW23A0ujJnRFYiZF61IJrODxKe3YEvnl7tk1UnAyQiD6RIqKmD07nZFUuyWp9ygg8NXXOEwcoF2/kNBqtdp64q37gKHKRm9Ton+xJlv5DplIzBRdmitRJDIk+8dZz/d58wifmg6S+XsP8ZD8RBbQAmdAXgJ/mpgWugUxSu75AzSdIUS61wnO+KwKUAXw1njJ2cmj28bCKoruXvFIAy1bgBZKQEWj0IovfmN5lTqRhs0b3RQJ5s60lYL2KxAJiZl+6q3+FJCYeOsE+/h5if+98NLwGadRTfMRXmW4eH2AWZdrWxOpS4ubvWToj6t0H6dMPUn+FTZkpK9PGDswpuAkVuVBkI5N1JBaVpOm8TGgcjFuR6nxLwcgbfObRO6QD70nNq9qEdV9MGrq9Wsz0QqI6jgMFsSQ1tEmTmEAiJbv3pK3rw0HwYaXzd1fQPn+fiJJm7Gx4wdW79YSjRQ6HMlibJ424nC/ntCTqMoRP56P1Mm4kpc2UEUf1Iw2bHqimQkBJQ0u5U1qw1nMtRsMZEAZuzleSGjCiMVDCjhco6eL1B30jPh4J1wcCdUHRRYPmi6cE8JLsqJrzvhQwYe8YbdcS6/qOP/Ja0VvWGM9X2b50HBhAAIa8nxp+3hooDDwb4yjnQUTmYpBe0HOlcDd23omDF1RNxlMO36TuQtJoz88LXX+Ge6m4pe01xm+PLWZVp0ldlefbDxjnO+gIPIZh2D8oRicglUXlRctYyRv7H3g1ai+rZWe42Nl1pruqIKYFtLqbQt6Pd0rKElQBnqMhDh5wvhhVorZ2n0Zf5RfnA/Dcg63ldOmQ+XVRYIVq6FXy4FGDSG/RSaYfikBTomJ26WJOs+dym2eEdw3tuEQHegElc8uaIgCcQtpR2XZUrB5/OC1LcbSRA/dS5Ws4adFzuYdjKMXOS5UutmvP9kqsmD3jPKLD5adNW30nypmdpkyFtH+M4WcKwEpp2OK/3coq7zFTaWyJhlas3m5JbOx1Za3hUMkGd/inXTHhtDYTd75V2zQrdyRUEzfWMN51hZz95dJo0excAbggXiTYznJ4wbbqqhQZj9ss9DaEpwTdJPzDlIff3IECChIy00RkQnghIpRg8LMA3BJOeWke8Y9LL/YOqnelz0ftKHqH0t8nF9g/VdyRiiJLPyW3kSicr4lEb+9xb2b9ci+fSMfAjytOPWixtRM=|paIIlyPdHP5xfJ3K8sD+M7rScNv32XGLxqtrqlxUBO0=", + "privateKey": "2.KBrLyhtKbrjsqxg+JpjiZA==|LQknPdrGg3r7TGXCwZEnB8rUqCcn8UFvm1J8/AmjemtbZrg/0rNCWt/O0KYLvMu2suYyJJLNV911TsLP2RlJvjVguOPE3W3AkvLRC9o+lLIXsC7eTjyFtzqWtFc5KhfYvXJSbfmntAPIwbkZb8cNCWjsaJ/3kdIk0PigVDie+WO4axgXGHZyqlTnLVN75MWmPyaTwItRbtr0gGkqr50Q6PIiAWaOelMwIwnCmpMWpoTV7ulJnQP3CgHeqlipy4QPxqM8z6ROuOduaUAZ/eOTV1wkIwneCreiHpgKgysn73itRwlMgwGlw4rmAP/GN0llhri9wwkd4XudqgCIYFpXo0B0WfFHfhFtZD5TKHBJXQJb0amvGa3TPfWxSiRfsRAp6syhO3HHmWiOk20hMKd+RswPoe+8p+GpKQLb01X9Ye9vwdK5JMKjO0tSdeNSvOm1Gv4uC00Ju4W8LKeAMddnTnwYfOHW+V2/YgvTdlP+oXEeFdZPPxyCgB4J4E/xioF+RPCofQ0gKfCx3QrkY9IAFuqeAHfnm+sT77oYAYMNcs1oCW346nyCujoMBR0kdkHHHKTp+94/wwd8Zy+c8ov54g2cKNgtTdyhRhjLrnMss24l16aTrD8w3tOjN7w+VfbnC+0E1X0QD3xowFU71M+MmAPvkp0nwgjCMX8v7c4m0Gm63EbWKEXBk1ChvjU0PNLSzmk36NO0FEb4FvyhD1i8Q2DR4xHRj3kyI40CgE3c1G67a/dAiGMm8uu7UkkOOR6ItWApZsi08ayahyYF/vYdgAUni+8jxcin19N4+kfw6b1mqQTLBszr90mCtxjSLVhEFNiTWUiJY5dEpUBRfS4cZX0V51864bNmsO8zqeLKQ1Ia7zXnYYl3DOtGJ1CQQ4PGEJ2GOl8q3OgWMGF3nwTUJuGkzHcYKhErNSiqT2jvEEJ+ExQ7UOpzhLaDHRi9DsKiR1NEIGc3WMC2hOsbuVVvRbFmdoCavSHsZn89gqy6MjPvDtNFxqxfuWazV/FXxE2qbXpXZm4p6o9m5iJG79lu2NJ3tzkzZThOj25ivt6PH9IVY6dI2El342GL0sM6FYZcTUjtGOW9+cwXoOsmJEoMtQbcKO2xg8T9QO3ycwpZZLQft1tfWaAp1iI6e5hvm+4i4FXvIMUTMR8q9ExZmxmfUU3YeWS/hn8CqfHRof3qlovlK4WeDXtWwtS/k5k1zcGexK9AdXPBhTdyQ/kgtNXxoaO5kZqMrgFw+To8GOUxC4tSlYpv/AJwr0ByJf6r2y1+j3JNX3FvVgsdsYy7l+9kKGd67goMoN+oUTq7vs7pD6vVIp7ogP7eYifLZwmo1xqdTllpsjbcXBIvsbjlGCJl8ozkQF+/kFFzxPg0IKKkxNTlhkT1/x5SwFF1yCIXEZUg6V7hlLIznfCFkmE0cEY3FV8ry9/RYFFe1ap3th6zLWmSEu2Ec1XxGp7kiCOT+ns4WQRIuvimwEdycm8uE8TrgvpJL7FIQOqpoRmnn2pYlEPEYkqNZjgo+O+tYoMp8D0R+JReMBcPljfI/3WHly42m0M3ms49ggcav3LF60flHisZSfGc+FwOWB06EzMNHIpcJJhs2WAh9ilUzVcSCij+nuT5RqOJNM2TDin5uceK+Kk=|ErtYr1LBDtGl60Z7xKzGJH+ZbZfVM1vhLIYlOkHfQHY=", "providerOrganizations": [], "providers": [], - "securityStamp": "626890ca-cd39-444c-aa58-86cedfbfd4b1", + "securityStamp": "3a641a00-4693-41f7-9220-89fd7f76b1b9", "twoFactorEnabled": false, "usesKeyConnector": false } \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_organizations_aec64748-b3b3-4e2d-9c06-a44016b7247e_users.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_organizations_aec64748-b3b3-4e2d-9c06-a44016b7247e_users.json new file mode 100644 index 0000000..c03d379 --- /dev/null +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_organizations_aec64748-b3b3-4e2d-9c06-a44016b7247e_users.json @@ -0,0 +1,78 @@ +{ + "continuationToken": null, + "data": [ + { + "accessAll": true, + "accessSecretsManager": false, + "avatarColor": null, + "collections": [], + "email": "test-pbkdf@laverse.net", + "externalId": null, + "groups": [], + "hasMasterPassword": true, + "id": "56e7ff93-2054-49dc-8060-49a5b471f3d7", + "name": "test-pbkdf@laverse.net", + "object": "organizationUserUserDetails", + "permissions": { + "accessEventLogs": false, + "accessImportExport": false, + "accessReports": false, + "createNewCollections": false, + "deleteAnyCollection": false, + "deleteAssignedCollections": false, + "editAnyCollection": false, + "editAssignedCollections": false, + "manageGroups": false, + "managePolicies": false, + "manageResetPassword": false, + "manageScim": false, + "manageSso": false, + "manageUsers": false + }, + "resetPasswordEnrolled": false, + "ssoBound": false, + "status": 2, + "twoFactorEnabled": false, + "type": 0, + "userId": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", + "usesKeyConnector": false + }, + { + "accessAll": true, + "accessSecretsManager": false, + "avatarColor": null, + "collections": [], + "email": "test-argon2@laverse.net", + "externalId": null, + "groups": [], + "hasMasterPassword": true, + "id": "e3088cef-9d0d-418e-b225-787e73e0d32f", + "name": "test-argon2@laverse.net", + "object": "organizationUserUserDetails", + "permissions": { + "accessEventLogs": false, + "accessImportExport": false, + "accessReports": false, + "createNewCollections": false, + "deleteAnyCollection": false, + "deleteAssignedCollections": false, + "editAnyCollection": false, + "editAssignedCollections": false, + "manageGroups": false, + "managePolicies": false, + "manageResetPassword": false, + "manageScim": false, + "manageSso": false, + "manageUsers": false + }, + "resetPasswordEnrolled": false, + "ssoBound": false, + "status": 1, + "twoFactorEnabled": false, + "type": 0, + "userId": "d79664fd-d5f2-462b-b0ab-50bd34c83be5", + "usesKeyConnector": false + } + ], + "object": "list" +} \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_sync.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_sync.json index 2eb7227..9a05885 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_sync.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_sync.json @@ -4,35 +4,35 @@ "attachments": null, "card": null, "collectionIds": [], - "creationDate": "2024-11-14T08:04:43.820095Z", + "creationDate": "2024-11-23T11:18:36.460994Z", "data": { "fields": [], - "name": "2.Ciys+7oZ4mJJ3XwpzFbImg==|qgFTmq+2MlIYwi00ViNeOy4eDMUS/xEKekBBrXzSln4=|p93IKYb3PvspgqLrgAY9cGoMpqSG8p69D5WomV3F4u8=", + "name": "2.F0uwn7MlXE8L6GtmwP1Bbg==|Byz+RUhmROtZy97TU0vFYogsaqT5OLcNOy/9epZCLrs=|BpWFqzrLFO3fE0hYu0F/wOcisFvmCc7oBOA2VLpfe2A=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.waVTLtcswhZVZHJ6TfwE7w==|P+KOCYRKW412rzha5qBcRw==|7clMvrmycFmmeKUN60UIXgfwiThaL5e8tueJq1bjiFs=" + "username": "2.uzZvDbZ4tNvZQuWpkAhC2w==|JhYoCT6G7bEsUH6rM7njrg==|CGYQerKUsBlLpW40Hhfx+40Ggl49GuQ1lhbwVmyUfDA=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "03c5e73e-1052-4135-9c2f-98dce0211054", + "id": "29d54520-d675-4996-9e43-a112759ac663", "identity": null, - "key": "2.AelrqCHUAqVj9C67kzfgxQ==|CITyvwLPchdx7XbpOx8S90NRa6vEKkJDhffUWnxMPnN7ibu6a1SB39l4/BBlgwxUe8gjZ5oxnDdCVKjFzSCCnKytH+DJHpQwco8CW8D91FU=|VA6prOwZyLzhZobMMLjE2yIQ20RM20ITN3GNdK3bsF8=", + "key": "2.eTmOAKUjNvAicZwaMXEoSg==|UPfgBAHZPg3yZm5BNo6RS0usqX4Yrz1YXPbWEgReOTlKF3b1qG/7RmGC5jj+BMdghXQOpUBMkYV+u5QgktK3U4XyXS+Zd0SkMDGkDIAT5n4=|GnjlSxfFiDC42GPMv9s95HIfw7FTCklVPaeSVbwdiOc=", "login": { "uri": null, - "username": "2.waVTLtcswhZVZHJ6TfwE7w==|P+KOCYRKW412rzha5qBcRw==|7clMvrmycFmmeKUN60UIXgfwiThaL5e8tueJq1bjiFs=" + "username": "2.uzZvDbZ4tNvZQuWpkAhC2w==|JhYoCT6G7bEsUH6rM7njrg==|CGYQerKUsBlLpW40Hhfx+40Ggl49GuQ1lhbwVmyUfDA=" }, - "name": "2.Ciys+7oZ4mJJ3XwpzFbImg==|qgFTmq+2MlIYwi00ViNeOy4eDMUS/xEKekBBrXzSln4=|p93IKYb3PvspgqLrgAY9cGoMpqSG8p69D5WomV3F4u8=", + "name": "2.F0uwn7MlXE8L6GtmwP1Bbg==|Byz+RUhmROtZy97TU0vFYogsaqT5OLcNOy/9epZCLrs=|BpWFqzrLFO3fE0hYu0F/wOcisFvmCc7oBOA2VLpfe2A=", "notes": null, "object": "cipherDetails", "organizationId": null, "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:04:43.820222Z", + "revisionDate": "2024-11-23T11:18:36.461155Z", "secureNote": null, "type": 1, "viewPassword": true @@ -41,35 +41,35 @@ "attachments": null, "card": null, "collectionIds": [], - "creationDate": "2024-11-14T08:08:41.108758Z", + "creationDate": "2024-11-23T11:28:00.013256Z", "data": { "fields": [], - "name": "2.w6SyB4UQFPUbIm6aaEL7zw==|5SQ25b43ol/UN80yzf6+UZMlluEtfIK4GNA5X86+P+I=|wQsGEnLxJc2f36jgv/O91YhcWIZyDMB5kqMi+RXNvw4=", + "name": "2.X8LpoTT4eL9pL3lHBsrgVg==|vOEbhxl1WA0xkqrP0A/SYgyrcTZuID7O7XiWhgkmMsQ=|00TlxEQQ2kLzaH5RaLAZAHlCE/v93Hx11nR96usHBdw=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.C0ulk2MT2cJnX+FVe3aemw==|GtHL+1dx/9LsrzRZRjG65w==|qzX9PKZT71n4SO56Zb2U8WkKppRMF2VsDM2wIBGQMP0=" + "username": "2.7IHTbc2ZQ8PIbJA7/24RIQ==|/yvTxBW7hIogydzo7RXV3g==|dDJ6R1VbLxOf3cjfWvY3aVOT3ofpKZUe6MwXIToq0sk=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "449c5009-f3bd-4903-a334-a28840b9b75c", + "id": "84c577b5-ef70-4560-bb85-4438a9e633e6", "identity": null, - "key": "2.6jk5cbrwxBB5AAHQgc4kkg==|5dsiCD/VSmMsOWSySCkTFM22FtgtjkRV4l14KYfWaYw20i0uAWvHJ6qbTSzRrjoLs9gP4h/ZNTZ32NZP5RBH8SHgvXEgwtLuv7NyM7S2WFI=|AciWaJ5dVsaNXCVDU6wR9bb5XSb+NIyBfiKpe7fJXag=", + "key": "2.Cq+NqHAShdN0JduR0wqZVA==|09S5+MASQuTfnumF1efnljzmj4bpKhVpwphjxuEXxwTnTJg1f6Xzyt2r4n7qfqOF2/clB6wJZHufXQT0rsZR16dJJ1oz2eWlt4y24sFYvxQ=|RfbCnfvYaH1ZzJHOamG3W/a4saMSQOU3/ynW2Easg2Q=", "login": { "uri": null, - "username": "2.C0ulk2MT2cJnX+FVe3aemw==|GtHL+1dx/9LsrzRZRjG65w==|qzX9PKZT71n4SO56Zb2U8WkKppRMF2VsDM2wIBGQMP0=" + "username": "2.7IHTbc2ZQ8PIbJA7/24RIQ==|/yvTxBW7hIogydzo7RXV3g==|dDJ6R1VbLxOf3cjfWvY3aVOT3ofpKZUe6MwXIToq0sk=" }, - "name": "2.w6SyB4UQFPUbIm6aaEL7zw==|5SQ25b43ol/UN80yzf6+UZMlluEtfIK4GNA5X86+P+I=|wQsGEnLxJc2f36jgv/O91YhcWIZyDMB5kqMi+RXNvw4=", + "name": "2.X8LpoTT4eL9pL3lHBsrgVg==|vOEbhxl1WA0xkqrP0A/SYgyrcTZuID7O7XiWhgkmMsQ=|00TlxEQQ2kLzaH5RaLAZAHlCE/v93Hx11nR96usHBdw=", "notes": null, "object": "cipherDetails", "organizationId": null, "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:08:41.108868Z", + "revisionDate": "2024-11-23T11:28:00.013338Z", "secureNote": null, "type": 1, "viewPassword": true @@ -78,37 +78,37 @@ "attachments": null, "card": null, "collectionIds": [ - "186393ee-1e97-4c9a-b7dd-e1d03bb58202" + "2df2346f-3cf3-4ce3-acf3-4eae4d276e5f" ], - "creationDate": "2024-11-14T08:04:44.066546Z", + "creationDate": "2024-11-23T11:18:37.246806Z", "data": { "fields": [], - "name": "2.3+U8V7fTVp5VzaLOSsCqrw==|byG/Mcu0aWJSxtum9KIhzG8d+DuTOZwFAAK1YQ4b4ng=|o8m1Mww2xWd29wy82vjaGwgYxUfvPwYktSSHjYOXX6k=", + "name": "2.4QPlERQ5GBZaO47Fr5Ocsg==|K37lzzWHqmF+mhYQnYi7O5TWuVqnGsXZ7Qsg8bPFKCk=|khdUfctIkuWZ3iDMMO2X7WTJd7NYP0EZa+MD2UI883g=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.eoPMMqBMGsBVmt59nuxifg==|kFPNxAMWzk7mMOakpvjNLg==|1A6z7DYd/U8zOmtgnOgTaDVznzvzHb/BhmcThM2heG0=" + "username": "2.iDYOwZYyDUBsvs4iJrPAkg==|lUuk9o//A8T24DXRSVKCvg==|yDU7ACNi/oX2BIR2VzSVH/9P1BpzLovLNbZ5lZIQH5Q=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "9849fadc-f9eb-4e25-82cd-1f458764e7a8", + "id": "e9d57378-639e-40b1-a989-86e77849455b", "identity": null, - "key": "2.XSoczk4+JxjpSQHYmSGM5Q==|0D75L+87GozQZUrSWHTU/7CMWu3BS4o6vrSEvDx/vNsNW9zWpXt7EOz8mweG0bibLQknm+0mcKIDdY4UsCfqBYAfvg7PKlrK2XhSTB65PYM=|5bq59p6SjOp1c3m+Ymnk1vwv16UBjpFPZcELt4az+jw=", + "key": "2.TNW3B9CvEd2WcaTwh8IzWw==|GMVJitF6YgkAT/zyEwOQmW2tIr9zEmkgWV2kuoPazddpf4igd4FKZ8bOUTV7oUwOmY/VdvvhnkZFv0eSeDtXlIq6JJKQHX7soYLDMNNTD60=|xvMQgo0TXhNCCZUXMJ2eeqP7lHpLYDYFWHSxbDjsIz0=", "login": { "uri": null, - "username": "2.eoPMMqBMGsBVmt59nuxifg==|kFPNxAMWzk7mMOakpvjNLg==|1A6z7DYd/U8zOmtgnOgTaDVznzvzHb/BhmcThM2heG0=" + "username": "2.iDYOwZYyDUBsvs4iJrPAkg==|lUuk9o//A8T24DXRSVKCvg==|yDU7ACNi/oX2BIR2VzSVH/9P1BpzLovLNbZ5lZIQH5Q=" }, - "name": "2.3+U8V7fTVp5VzaLOSsCqrw==|byG/Mcu0aWJSxtum9KIhzG8d+DuTOZwFAAK1YQ4b4ng=|o8m1Mww2xWd29wy82vjaGwgYxUfvPwYktSSHjYOXX6k=", + "name": "2.4QPlERQ5GBZaO47Fr5Ocsg==|K37lzzWHqmF+mhYQnYi7O5TWuVqnGsXZ7Qsg8bPFKCk=|khdUfctIkuWZ3iDMMO2X7WTJd7NYP0EZa+MD2UI883g=", "notes": null, "object": "cipherDetails", - "organizationId": "59ab1b06-0f12-4baf-92bb-b562e951a07e", + "organizationId": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:04:44.067017Z", + "revisionDate": "2024-11-23T11:18:37.247251Z", "secureNote": null, "type": 1, "viewPassword": true @@ -117,37 +117,37 @@ "attachments": null, "card": null, "collectionIds": [ - "2896c624-f13e-479b-a482-f3eda4d67a3c" + "77f6800e-0e3a-4fa6-a06f-4a270d9c3987" ], - "creationDate": "2024-11-14T08:08:41.431256Z", + "creationDate": "2024-11-23T11:28:01.038884Z", "data": { "fields": [], - "name": "2.W56k7Xg457UBuuYHtzA4jQ==|4UE2Ve0lM/50ndnLzgEyCbTu9E/sMPEwbWSrt2OcF0I=|jRPTo5WqejdmI5/bymCBRLFAOQZGhZl3drQfgtm7lNg=", + "name": "2.ZW+T3CxaabqQ2P0uXYUCTw==|qgSRT8uedewGESzAhnTL1EwOxGh1Pwpa1xG7Q5RqE9A=|afjabeFGgaUNYVn/z0JIyW078ODNoa5xOSHmrjsb2Fc=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.nFyA1XTvrCgtujbCc+gsaA==|LQbL4eLktLyebvnyWbIAcA==|a14GrjoD1Jb2koTkm6+ZoNP4dqBnyNCZMJojv/fdQGQ=" + "username": "2.5yqH61PACUoGT6lTBQFe6w==|O1k6quqWNx1+oy5fpxJWRw==|TTQCfgZiPfOA5TPLpyhPoFE6HJ35rLrSa0xsMVZpJRw=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "f2db56ee-665f-4700-b133-8aa40b14d9c2", + "id": "ebc9683c-4ba0-4b9b-ad5d-ca33cab28a30", "identity": null, - "key": "2.icUBIoTdJk8HNUPhzCr+fg==|UqIJ3Pkvp2b1iMgMgTY9P3wP5+mLrGGPYVz9d6gEAu2ZHy+5D6+EFlwv1Hd3AvyfzLECvRAHVf4tH1f1ki3DoFREdz7J7E6/35+f1jCiolY=|yty6EEUDX/PUmIWBl1PmKOZ0GnphFuYXzJCj+DuY2R8=", + "key": "2./ZSiMnh1ziSAV/jlofdkqw==|dh7Wrksa7DUvyazVPIFu4/Kkwfn93ZPzcX8/CBcFMf0anW/sjCp2C8TlMKcUgJ6OIypyIH3Wz9Zqm3qFzmqyHCA1Da6PIgNPhTRp7gvAdLE=|6U1K2RwbJ3/7+WIouo6WtQ7woUn61jnmAXTfcY29o0E=", "login": { "uri": null, - "username": "2.nFyA1XTvrCgtujbCc+gsaA==|LQbL4eLktLyebvnyWbIAcA==|a14GrjoD1Jb2koTkm6+ZoNP4dqBnyNCZMJojv/fdQGQ=" + "username": "2.5yqH61PACUoGT6lTBQFe6w==|O1k6quqWNx1+oy5fpxJWRw==|TTQCfgZiPfOA5TPLpyhPoFE6HJ35rLrSa0xsMVZpJRw=" }, - "name": "2.W56k7Xg457UBuuYHtzA4jQ==|4UE2Ve0lM/50ndnLzgEyCbTu9E/sMPEwbWSrt2OcF0I=|jRPTo5WqejdmI5/bymCBRLFAOQZGhZl3drQfgtm7lNg=", + "name": "2.ZW+T3CxaabqQ2P0uXYUCTw==|qgSRT8uedewGESzAhnTL1EwOxGh1Pwpa1xG7Q5RqE9A=|afjabeFGgaUNYVn/z0JIyW078ODNoa5xOSHmrjsb2Fc=", "notes": null, "object": "cipherDetails", - "organizationId": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952", + "organizationId": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:08:41.431692Z", + "revisionDate": "2024-11-23T11:28:01.039160Z", "secureNote": null, "type": 1, "viewPassword": true @@ -157,57 +157,57 @@ { "externalId": null, "hidePasswords": false, - "id": "186393ee-1e97-4c9a-b7dd-e1d03bb58202", + "id": "2df2346f-3cf3-4ce3-acf3-4eae4d276e5f", "manage": true, - "name": "2.oY53WK8nglYkMOpe0pI5pw==|5tDU0gIPx636XINvx+5PJg==|lEiaF8l9uC4aQ3gvF/vHZSZwBdZUTRJ2C5DnnV+sLIc=", + "name": "2.9Y8Se3ncV5HQeOZMxrFVZw==|fazqtThY6/DfDvQ78yBVdg==|xsg1SMT+/0fpv/8uP7aQ0rmanFVEm3ZN/dtMwcTJq7g=", "object": "collectionDetails", - "organizationId": "59ab1b06-0f12-4baf-92bb-b562e951a07e", + "organizationId": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "readOnly": false }, { "externalId": null, "hidePasswords": false, - "id": "2896c624-f13e-479b-a482-f3eda4d67a3c", + "id": "523a08b0-bfb4-4abf-ace3-b9dd614093bf", "manage": true, - "name": "2.JEJna7Q3FT0YttSqbRWrpw==|ENCIAPVYEVBFWW9KF5cRUw==|Cgx1oJMA+ncix8salKBvDCxNNA0LTf+lPApF4lThxOk=", + "name": "2.mDGL+xsVZr9ZuWtHKfxIXw==|2v25e3ldn326zKMlBisETIfi+gKc5TJvoFIF17C8cqc=|AE3auhrRqiUUPdbI0oXW2cD0YA7+GHjjDr3T3CqTWko=", "object": "collectionDetails", - "organizationId": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952", + "organizationId": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "readOnly": false }, { "externalId": null, "hidePasswords": false, - "id": "43d8c18a-d7c1-483a-b571-dd98f3c3158a", + "id": "77f6800e-0e3a-4fa6-a06f-4a270d9c3987", "manage": true, - "name": "2.lWvBx1EblfH9869vY8SrrA==|Fk7XHpnePZl3Nb32ZYPDXCG8qkzZpQ99/g7i5ouuZb8=|dc27aCQnUFrf9WdUkQeuoM7Y1u0CSxK7MSnvMGlBK8w=", + "name": "2.EoE/8Hzpw0d1h5wGrSCAaA==|MXykeOzBijHTX0R8K90tgw==|2uwYB8+LAkBmCLuKN9zkJO/FYeV5mJC7QmG8UTY1h7E=", "object": "collectionDetails", - "organizationId": "59ab1b06-0f12-4baf-92bb-b562e951a07e", + "organizationId": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "readOnly": false }, { "externalId": null, "hidePasswords": false, - "id": "bcc76889-5f00-49c9-83f7-ca1c6319f8d9", + "id": "7d0c9a94-80ec-4b9d-abac-490b8417d70f", "manage": true, - "name": "2.EPgHqgyoCP5M91yov1GGoQ==|IgV5PgWXLHnNY/Aor0hbCdTnzavTK6n8/3a20jn9wEE=|W3AJCQjBLxUBvtmSTS1cReBGxLyj6GwWCnAMISTZHS8=", + "name": "2.yTSeAqLUIjXFe7TIZUIpsg==|2B2YXokr5ZOQ+gD1IfB3c1ZCS8xeFmW5HaTOp1pLjBs=|XvEPq9IuwwRuYnTOLckBb4cOLLWQoEsn1OIvbVQwI2M=", "object": "collectionDetails", - "organizationId": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952", + "organizationId": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "readOnly": false } ], "domains": null, "folders": [ { - "id": "6fbb097f-8803-4ea8-9540-e6c121f3d09a", - "name": "2.xmc4nj0RNIqZ38ExOieXSQ==|MuuHQqssmvTUmqnx7TlZQgDVJQr3Z38pYsQKRV+ADE8=|EvLz5fKpl+LY3d6Hxg4mE+p0rUor7dix9/71gMVox30=", + "id": "563ff856-938b-43c6-9347-95403764197e", + "name": "2.GxtJ9O0OLoU+kgARwv3KJA==|mOFysfP78CYXzHSNEDdr0dWqP0KfKWju+UCeFCljC1A=|kl4c+GfGkO5RT/0BywVHac/ZYZhn1XkS8gR9aDOUeb4=", "object": "folder", - "revisionDate": "2024-11-14T08:04:43.824494Z" + "revisionDate": "2024-11-23T11:18:36.464772Z" }, { - "id": "4a492c71-a9a9-4645-8197-fe7b2fe6f80f", - "name": "2.pEA5Xs5gGhPxvsVWqgJiKw==|kHYmgF3gSmfcDu2m0wX0SuyQS6vc/006g/dnoUVUHL4=|IywX0FrfYHehhl8JaYhbL9Vv2URwads0wwUh8h1Cymw=", + "id": "3680b867-ab43-4edd-ba0c-9de6378e6d6e", + "name": "2.V0zMytyReOijzzPVtUQUBg==|k6apc5lDk9MHUGRnc2BQOlZh/v2sFhWHFAuW1A5CF5A=|NSlT0UG5uNpdrzWTwp76mTZWnFu1DK5dZCSnBDjlUj4=", "object": "folder", - "revisionDate": "2024-11-14T08:08:41.114408Z" + "revisionDate": "2024-11-23T11:28:00.018027Z" } ], "object": "sync", @@ -215,13 +215,13 @@ "profile": { "_status": 0, "avatarColor": null, - "creationDate": "2024-11-14T08:04:43.308268Z", + "creationDate": "2024-11-23T11:18:35.871274Z", "culture": "en-US", "email": "test-pbkdf@laverse.net", "emailVerified": true, "forcePasswordReset": false, - "id": "4b2f0bec-65db-4a31-8d89-292571952302", - "key": "2.4gCtht9FEtl60l2H/TkeoQ==|88W/oOuQm723ofEUCD1DRunSFZh7k6RchxKU3p13zk1mnLDOOQmQFjkIPAaKDysAxKmWa6Sm+JSley7Y2u4uO5sHm4MLeSoqAyCWbUyl+NE=|9YLLznXlEifIkg0pEaD2MYwgpFy+QBfApNlC7rvbXRY=", + "id": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", + "key": "2.kYim9ojCjWGdD2xKKTNxeA==|OClQo9nS5fH/eEJeB03avcvbi562Rwh1hjTZIuFrLyv78G4CLdVhmMtlOA7fw7JIZNV88/kSIkjkOV5ofz/9epEgjvxYHoKf/b+mSkKflCI=|mFoApA3iJEGyJU6IO3/c16dd9jCjVeOfFnDJRHgAHbg=", "masterPasswordHint": null, "name": "test-pbkdf@laverse.net", "object": "profile", @@ -237,9 +237,9 @@ "familySponsorshipValidUntil": null, "flexibleCollections": false, "hasPublicAndPrivateKeys": true, - "id": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952", + "id": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "identifier": null, - "key": "4.LWTRNiIgL6rsWW3rUiN3nauOfHqXBmuDXK+J9lNB3cWZnxFt4rMJ+AVBE7sPqmH7Sxz5rOxxcTrMNMY8SqJn4wZvpN4ZpwsozWFSTP21W50VqS3OseorDA16PMlQ8djlDqIdAcv2nXZUQyW5+uSDN+gAbndoBaK6eDPlFpIFUNCwEvPZFEpWxC07j20D7wbHCMt52Bm24JVkGkSCzDbEARsXFBWNa4oAaMob2OJ8gq1jqUvTYCrMZUDC8K2pIzycAzdyWBjx/GeAtdJGOMN9kwXOFCSMXfASNaLMlZjnYFdp/s/ojNPwvGFDhZSo8b2Q345iowZ3w40xUOGszuO5QA==", + "key": "4.LcL2YO3vMqh9ki4EnZzgnxlSui4GUQly5FXhiN7/xPQ++L+nDJ7oJLO3Kg14BkL3me4ifobwuVPAeJ5ye5FiYRfKeAVGwnV4PTkCFt3k7pwfcIp7cW3ZvuCD1C7iTC/pyGWDEdBvP9zR8sEASBYbHPEvkPLWVsxQS/J+dy2pZ91SwwAtxHtXhVA26KRYO/dvwnRTd48FXwSPU5pr0O+h8zUWmH9qbUvGQggB+soKsfjc9O28mKUk1DVqyyrPrrkNoXC/sQI9arWmaw72KKZr8UBCISWK3/ySbIWqUTklgVVmhsVsHkAv9IL5/12zRh/IjKSRTOjhnz1BmwIG6RotqA==", "keyConnectorEnabled": false, "keyConnectorUrl": null, "limitCollectionCreationDeletion": false, @@ -247,7 +247,7 @@ "maxStorageGb": 32767, "name": "test-organization", "object": "profileOrganization", - "organizationUserId": "1be9a4ce-77e1-4be5-a161-f92e337d37c7", + "organizationUserId": "56e7ff93-2054-49dc-8060-49a5b471f3d7", "permissions": { "accessEventLogs": false, "accessImportExport": false, @@ -290,7 +290,7 @@ "useSecretsManager": false, "useSso": false, "useTotp": true, - "userId": "4b2f0bec-65db-4a31-8d89-292571952302", + "userId": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", "usersGetPremium": true }, { @@ -304,9 +304,9 @@ "familySponsorshipValidUntil": null, "flexibleCollections": false, "hasPublicAndPrivateKeys": true, - "id": "59ab1b06-0f12-4baf-92bb-b562e951a07e", + "id": "d869b2bf-6370-4bb3-8c96-68b70a6e504f", "identifier": null, - "key": "4.M2epLQnlju1A2TQxUIV0PGG0Q5EyEwBuESzkuj6XFZg3K6FEPenF1DY3ExAbMyWMw5WQlFT8rr13DaWCujrTMRyxh35RuQ9fM8cy/0KW1kZnMB41elPlOTVqSL6vzbAGIzIKaUq+viur38x3Js9WXXUJCs/Z8Kgg0qnQGoaoEsOCJOIXok/CDMGaYZH1AhEkMwfQ/NnQTZl4rAJo1De0cGVPrx4HsL+iVzxBELn/fH1+Acm/0ty53r/hAMJa0B7XMuDJeZfGtcum/OkYNhuiBevlBryAfg+EAh3SVLLMY6zO6UqYqwC9sD0ZrvF46QU3vsHX8PG9UjxPWuLGHyYQwg==", + "key": "4.RVLVRAuCLdFc+N4qpnctsUKQFC3CEZJ3rAUtHMHqrSk0feMv+MmtEc8jfkVKJGKbk/P8U7E+4KR5kIUI7gQUhqPnfwmPVxnd6LaUVUlCpCEQcShiZS5upuVepv7ucYR1kCP5u4o7lZoMQO9x5Hb86qaE9pTQdN7aEluf3LjUv9C2NAZsCDI9h4iB7J7J9AuPT16qKrYlyy5LjgZuK4PulUZMyCejIt+qX9Jm5xIFcR602GdvVW7EqiEtTTzEndb8CzqAOIlBG3X2KWdaNDp/2mXJR3C6uR8JMlkM83I9qlGE8F7kMsjgtklY1f0X3Sn6x/cgj4mrWfyTqimQ3TT9PA==", "keyConnectorEnabled": false, "keyConnectorUrl": null, "limitCollectionCreationDeletion": false, @@ -314,7 +314,7 @@ "maxStorageGb": 32767, "name": "test-organization", "object": "profileOrganization", - "organizationUserId": "dc59323b-dc44-4419-9592-00bd9f4b8a89", + "organizationUserId": "6e3e9b63-54fd-45b5-b672-13d614de9b4f", "permissions": { "accessEventLogs": false, "accessImportExport": false, @@ -357,16 +357,16 @@ "useSecretsManager": false, "useSso": false, "useTotp": true, - "userId": "4b2f0bec-65db-4a31-8d89-292571952302", + "userId": "2d1fec1f-6d6f-4cca-b596-97dd3852392c", "usersGetPremium": true } ], "premium": true, "premiumFromOrganization": false, - "privateKey": "2.TAP/O7Dh5XpYM849H0GOyg==|mh0hjM2nW48b8ouEStI45cukyZgOosJicloJ/4phFV1fwBMYDKCIu7mDjRnkzgBRK+1X3GkbNhXPAWS6coEGyoCakyC/6WgCbJHoLW9c2gJWNteD53Z1H0lgQt3Q72zSY4pKN+++JSgYH3n91tfxREdnp8lLaPuQoNZB4KBO3c73TYR82XrrHDg9LIVc6QvH+WbousAkdwE7m54LIEkMpHGSbqOJunJUJ0rKByuRiZEmWI12OCX8/9MpTiYLl+IIzv//DAVkORJKLRBVhwhtTJ8OyBhbtPpXtS1sMB7gp2KFWlk8bB6ARxpYCFrR5hlR3zwP11nYZ9GmwjrP93CN/Zvre3Hgs5EaTFyQr+1INb1PtCDhHf0j//OoIM3Uc+wcJvZC3ZB8g+NifakbRKGtjKiPjsuyTkCsvM/ryxnimgn2/q7fKrk7NohNcXC5LvMpW23A0ujJnRFYiZF61IJrODxKe3YEvnl7tk1UnAyQiD6RIqKmD07nZFUuyWp9ygg8NXXOEwcoF2/kNBqtdp64q37gKHKRm9Ton+xJlv5DplIzBRdmitRJDIk+8dZz/d58wifmg6S+XsP8ZD8RBbQAmdAXgJ/mpgWugUxSu75AzSdIUS61wnO+KwKUAXw1njJ2cmj28bCKoruXvFIAy1bgBZKQEWj0IovfmN5lTqRhs0b3RQJ5s60lYL2KxAJiZl+6q3+FJCYeOsE+/h5if+98NLwGadRTfMRXmW4eH2AWZdrWxOpS4ubvWToj6t0H6dMPUn+FTZkpK9PGDswpuAkVuVBkI5N1JBaVpOm8TGgcjFuR6nxLwcgbfObRO6QD70nNq9qEdV9MGrq9Wsz0QqI6jgMFsSQ1tEmTmEAiJbv3pK3rw0HwYaXzd1fQPn+fiJJm7Gx4wdW79YSjRQ6HMlibJ424nC/ntCTqMoRP56P1Mm4kpc2UEUf1Iw2bHqimQkBJQ0u5U1qw1nMtRsMZEAZuzleSGjCiMVDCjhco6eL1B30jPh4J1wcCdUHRRYPmi6cE8JLsqJrzvhQwYe8YbdcS6/qOP/Ja0VvWGM9X2b50HBhAAIa8nxp+3hooDDwb4yjnQUTmYpBe0HOlcDd23omDF1RNxlMO36TuQtJoz88LXX+Ge6m4pe01xm+PLWZVp0ldlefbDxjnO+gIPIZh2D8oRicglUXlRctYyRv7H3g1ai+rZWe42Nl1pruqIKYFtLqbQt6Pd0rKElQBnqMhDh5wvhhVorZ2n0Zf5RfnA/Dcg63ldOmQ+XVRYIVq6FXy4FGDSG/RSaYfikBTomJ26WJOs+dym2eEdw3tuEQHegElc8uaIgCcQtpR2XZUrB5/OC1LcbSRA/dS5Ws4adFzuYdjKMXOS5UutmvP9kqsmD3jPKLD5adNW30nypmdpkyFtH+M4WcKwEpp2OK/3coq7zFTaWyJhlas3m5JbOx1Za3hUMkGd/inXTHhtDYTd75V2zQrdyRUEzfWMN51hZz95dJo0excAbggXiTYznJ4wbbqqhQZj9ss9DaEpwTdJPzDlIff3IECChIy00RkQnghIpRg8LMA3BJOeWke8Y9LL/YOqnelz0ftKHqH0t8nF9g/VdyRiiJLPyW3kSicr4lEb+9xb2b9ci+fSMfAjytOPWixtRM=|paIIlyPdHP5xfJ3K8sD+M7rScNv32XGLxqtrqlxUBO0=", + "privateKey": "2.KBrLyhtKbrjsqxg+JpjiZA==|LQknPdrGg3r7TGXCwZEnB8rUqCcn8UFvm1J8/AmjemtbZrg/0rNCWt/O0KYLvMu2suYyJJLNV911TsLP2RlJvjVguOPE3W3AkvLRC9o+lLIXsC7eTjyFtzqWtFc5KhfYvXJSbfmntAPIwbkZb8cNCWjsaJ/3kdIk0PigVDie+WO4axgXGHZyqlTnLVN75MWmPyaTwItRbtr0gGkqr50Q6PIiAWaOelMwIwnCmpMWpoTV7ulJnQP3CgHeqlipy4QPxqM8z6ROuOduaUAZ/eOTV1wkIwneCreiHpgKgysn73itRwlMgwGlw4rmAP/GN0llhri9wwkd4XudqgCIYFpXo0B0WfFHfhFtZD5TKHBJXQJb0amvGa3TPfWxSiRfsRAp6syhO3HHmWiOk20hMKd+RswPoe+8p+GpKQLb01X9Ye9vwdK5JMKjO0tSdeNSvOm1Gv4uC00Ju4W8LKeAMddnTnwYfOHW+V2/YgvTdlP+oXEeFdZPPxyCgB4J4E/xioF+RPCofQ0gKfCx3QrkY9IAFuqeAHfnm+sT77oYAYMNcs1oCW346nyCujoMBR0kdkHHHKTp+94/wwd8Zy+c8ov54g2cKNgtTdyhRhjLrnMss24l16aTrD8w3tOjN7w+VfbnC+0E1X0QD3xowFU71M+MmAPvkp0nwgjCMX8v7c4m0Gm63EbWKEXBk1ChvjU0PNLSzmk36NO0FEb4FvyhD1i8Q2DR4xHRj3kyI40CgE3c1G67a/dAiGMm8uu7UkkOOR6ItWApZsi08ayahyYF/vYdgAUni+8jxcin19N4+kfw6b1mqQTLBszr90mCtxjSLVhEFNiTWUiJY5dEpUBRfS4cZX0V51864bNmsO8zqeLKQ1Ia7zXnYYl3DOtGJ1CQQ4PGEJ2GOl8q3OgWMGF3nwTUJuGkzHcYKhErNSiqT2jvEEJ+ExQ7UOpzhLaDHRi9DsKiR1NEIGc3WMC2hOsbuVVvRbFmdoCavSHsZn89gqy6MjPvDtNFxqxfuWazV/FXxE2qbXpXZm4p6o9m5iJG79lu2NJ3tzkzZThOj25ivt6PH9IVY6dI2El342GL0sM6FYZcTUjtGOW9+cwXoOsmJEoMtQbcKO2xg8T9QO3ycwpZZLQft1tfWaAp1iI6e5hvm+4i4FXvIMUTMR8q9ExZmxmfUU3YeWS/hn8CqfHRof3qlovlK4WeDXtWwtS/k5k1zcGexK9AdXPBhTdyQ/kgtNXxoaO5kZqMrgFw+To8GOUxC4tSlYpv/AJwr0ByJf6r2y1+j3JNX3FvVgsdsYy7l+9kKGd67goMoN+oUTq7vs7pD6vVIp7ogP7eYifLZwmo1xqdTllpsjbcXBIvsbjlGCJl8ozkQF+/kFFzxPg0IKKkxNTlhkT1/x5SwFF1yCIXEZUg6V7hlLIznfCFkmE0cEY3FV8ry9/RYFFe1ap3th6zLWmSEu2Ec1XxGp7kiCOT+ns4WQRIuvimwEdycm8uE8TrgvpJL7FIQOqpoRmnn2pYlEPEYkqNZjgo+O+tYoMp8D0R+JReMBcPljfI/3WHly42m0M3ms49ggcav3LF60flHisZSfGc+FwOWB06EzMNHIpcJJhs2WAh9ilUzVcSCij+nuT5RqOJNM2TDin5uceK+Kk=|ErtYr1LBDtGl60Z7xKzGJH+ZbZfVM1vhLIYlOkHfQHY=", "providerOrganizations": [], "providers": [], - "securityStamp": "626890ca-cd39-444c-aa58-86cedfbfd4b1", + "securityStamp": "3a641a00-4693-41f7-9220-89fd7f76b1b9", "twoFactorEnabled": false, "usesKeyConnector": false }, diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_users_d79664fd-d5f2-462b-b0ab-50bd34c83be5_public-key.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_users_d79664fd-d5f2-462b-b0ab-50bd34c83be5_public-key.json new file mode 100644 index 0000000..528c81a --- /dev/null +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_GET_api_users_d79664fd-d5f2-462b-b0ab-50bd34c83be5_public-key.json @@ -0,0 +1,5 @@ +{ + "object": "userKey", + "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlRbtt5Vyku3dUIkPR0Y3v94qvZReuwAijIwHQGQOuKw6lKVVHL29rZ93TwCG2P5a+GKH2+2fIbT/wTMTK4K1ElxQZ/2yLN9Hfu2d/ITNTsfTzPXvF3fao3Q0JmD7DNJS2bJqng3so28aFddOZ03H55m9T6+0ZJqrMdgE5Z1V/4I7LFF6JxGGZ4mg99OvfQ5K8GOBM6SCI6h5eMXM5EkSM9vol9sRxvVLZmvNKH3UP9riyQwtdcD5IxmY1y34Bg4b+a8tYaP7v90xF73uKs+287yNPLhWE9i+/gXwvApVxENG9SCPlSrAEHd1NZPfsZhHoG+LXhyCZu2COttZess44QIDAQAB", + "userId": "d79664fd-d5f2-462b-b0ab-50bd34c83be5" +} \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_accounts_api-key.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_accounts_api-key.json index 14df276..a6ef586 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_accounts_api-key.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_accounts_api-key.json @@ -1,5 +1,5 @@ { - "apiKey": "5REmF7CIUe8ijN3QsY1RQtvoXxcNeb", + "apiKey": "hrAZ0BRiUNFdzoonr3YaEfvfPjppl8", "object": "apiKey", - "revisionDate": "2024-11-14T08:04:44.067171Z" + "revisionDate": "2024-11-23T11:18:37.247335Z" } \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers.json index 77d5b0e..80b4d3b 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers.json @@ -2,35 +2,35 @@ "attachments": null, "card": null, "collectionIds": [], - "creationDate": "2024-11-14T08:08:41.108758Z", + "creationDate": "2024-11-23T11:28:00.013256Z", "data": { "fields": [], - "name": "2.w6SyB4UQFPUbIm6aaEL7zw==|5SQ25b43ol/UN80yzf6+UZMlluEtfIK4GNA5X86+P+I=|wQsGEnLxJc2f36jgv/O91YhcWIZyDMB5kqMi+RXNvw4=", + "name": "2.X8LpoTT4eL9pL3lHBsrgVg==|vOEbhxl1WA0xkqrP0A/SYgyrcTZuID7O7XiWhgkmMsQ=|00TlxEQQ2kLzaH5RaLAZAHlCE/v93Hx11nR96usHBdw=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.C0ulk2MT2cJnX+FVe3aemw==|GtHL+1dx/9LsrzRZRjG65w==|qzX9PKZT71n4SO56Zb2U8WkKppRMF2VsDM2wIBGQMP0=" + "username": "2.7IHTbc2ZQ8PIbJA7/24RIQ==|/yvTxBW7hIogydzo7RXV3g==|dDJ6R1VbLxOf3cjfWvY3aVOT3ofpKZUe6MwXIToq0sk=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "449c5009-f3bd-4903-a334-a28840b9b75c", + "id": "84c577b5-ef70-4560-bb85-4438a9e633e6", "identity": null, - "key": "2.6jk5cbrwxBB5AAHQgc4kkg==|5dsiCD/VSmMsOWSySCkTFM22FtgtjkRV4l14KYfWaYw20i0uAWvHJ6qbTSzRrjoLs9gP4h/ZNTZ32NZP5RBH8SHgvXEgwtLuv7NyM7S2WFI=|AciWaJ5dVsaNXCVDU6wR9bb5XSb+NIyBfiKpe7fJXag=", + "key": "2.Cq+NqHAShdN0JduR0wqZVA==|09S5+MASQuTfnumF1efnljzmj4bpKhVpwphjxuEXxwTnTJg1f6Xzyt2r4n7qfqOF2/clB6wJZHufXQT0rsZR16dJJ1oz2eWlt4y24sFYvxQ=|RfbCnfvYaH1ZzJHOamG3W/a4saMSQOU3/ynW2Easg2Q=", "login": { "uri": null, - "username": "2.C0ulk2MT2cJnX+FVe3aemw==|GtHL+1dx/9LsrzRZRjG65w==|qzX9PKZT71n4SO56Zb2U8WkKppRMF2VsDM2wIBGQMP0=" + "username": "2.7IHTbc2ZQ8PIbJA7/24RIQ==|/yvTxBW7hIogydzo7RXV3g==|dDJ6R1VbLxOf3cjfWvY3aVOT3ofpKZUe6MwXIToq0sk=" }, - "name": "2.w6SyB4UQFPUbIm6aaEL7zw==|5SQ25b43ol/UN80yzf6+UZMlluEtfIK4GNA5X86+P+I=|wQsGEnLxJc2f36jgv/O91YhcWIZyDMB5kqMi+RXNvw4=", + "name": "2.X8LpoTT4eL9pL3lHBsrgVg==|vOEbhxl1WA0xkqrP0A/SYgyrcTZuID7O7XiWhgkmMsQ=|00TlxEQQ2kLzaH5RaLAZAHlCE/v93Hx11nR96usHBdw=", "notes": null, "object": "cipherDetails", "organizationId": null, "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:08:41.108868Z", + "revisionDate": "2024-11-23T11:28:00.013338Z", "secureNote": null, "type": 1, "viewPassword": true diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers_create.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers_create.json index 4c8e226..94d498d 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers_create.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_ciphers_create.json @@ -2,37 +2,37 @@ "attachments": null, "card": null, "collectionIds": [ - "2896c624-f13e-479b-a482-f3eda4d67a3c" + "77f6800e-0e3a-4fa6-a06f-4a270d9c3987" ], - "creationDate": "2024-11-14T08:08:41.431256Z", + "creationDate": "2024-11-23T11:28:01.038884Z", "data": { "fields": [], - "name": "2.W56k7Xg457UBuuYHtzA4jQ==|4UE2Ve0lM/50ndnLzgEyCbTu9E/sMPEwbWSrt2OcF0I=|jRPTo5WqejdmI5/bymCBRLFAOQZGhZl3drQfgtm7lNg=", + "name": "2.ZW+T3CxaabqQ2P0uXYUCTw==|qgSRT8uedewGESzAhnTL1EwOxGh1Pwpa1xG7Q5RqE9A=|afjabeFGgaUNYVn/z0JIyW078ODNoa5xOSHmrjsb2Fc=", "notes": null, "passwordHistory": [], "uri": null, - "username": "2.nFyA1XTvrCgtujbCc+gsaA==|LQbL4eLktLyebvnyWbIAcA==|a14GrjoD1Jb2koTkm6+ZoNP4dqBnyNCZMJojv/fdQGQ=" + "username": "2.5yqH61PACUoGT6lTBQFe6w==|O1k6quqWNx1+oy5fpxJWRw==|TTQCfgZiPfOA5TPLpyhPoFE6HJ35rLrSa0xsMVZpJRw=" }, "deletedDate": null, "edit": true, "favorite": false, "fields": [], "folderId": null, - "id": "f2db56ee-665f-4700-b133-8aa40b14d9c2", + "id": "ebc9683c-4ba0-4b9b-ad5d-ca33cab28a30", "identity": null, - "key": "2.icUBIoTdJk8HNUPhzCr+fg==|UqIJ3Pkvp2b1iMgMgTY9P3wP5+mLrGGPYVz9d6gEAu2ZHy+5D6+EFlwv1Hd3AvyfzLECvRAHVf4tH1f1ki3DoFREdz7J7E6/35+f1jCiolY=|yty6EEUDX/PUmIWBl1PmKOZ0GnphFuYXzJCj+DuY2R8=", + "key": "2./ZSiMnh1ziSAV/jlofdkqw==|dh7Wrksa7DUvyazVPIFu4/Kkwfn93ZPzcX8/CBcFMf0anW/sjCp2C8TlMKcUgJ6OIypyIH3Wz9Zqm3qFzmqyHCA1Da6PIgNPhTRp7gvAdLE=|6U1K2RwbJ3/7+WIouo6WtQ7woUn61jnmAXTfcY29o0E=", "login": { "uri": null, - "username": "2.nFyA1XTvrCgtujbCc+gsaA==|LQbL4eLktLyebvnyWbIAcA==|a14GrjoD1Jb2koTkm6+ZoNP4dqBnyNCZMJojv/fdQGQ=" + "username": "2.5yqH61PACUoGT6lTBQFe6w==|O1k6quqWNx1+oy5fpxJWRw==|TTQCfgZiPfOA5TPLpyhPoFE6HJ35rLrSa0xsMVZpJRw=" }, - "name": "2.W56k7Xg457UBuuYHtzA4jQ==|4UE2Ve0lM/50ndnLzgEyCbTu9E/sMPEwbWSrt2OcF0I=|jRPTo5WqejdmI5/bymCBRLFAOQZGhZl3drQfgtm7lNg=", + "name": "2.ZW+T3CxaabqQ2P0uXYUCTw==|qgSRT8uedewGESzAhnTL1EwOxGh1Pwpa1xG7Q5RqE9A=|afjabeFGgaUNYVn/z0JIyW078ODNoa5xOSHmrjsb2Fc=", "notes": null, "object": "cipherDetails", - "organizationId": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952", + "organizationId": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "organizationUseTotp": true, "passwordHistory": [], "reprompt": 0, - "revisionDate": "2024-11-14T08:08:41.431692Z", + "revisionDate": "2024-11-23T11:28:01.039160Z", "secureNote": null, "type": 1, "viewPassword": true diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_folders.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_folders.json index 665f7b8..3ddff56 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_folders.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_folders.json @@ -1,6 +1,6 @@ { - "id": "4a492c71-a9a9-4645-8197-fe7b2fe6f80f", - "name": "2.pEA5Xs5gGhPxvsVWqgJiKw==|kHYmgF3gSmfcDu2m0wX0SuyQS6vc/006g/dnoUVUHL4=|IywX0FrfYHehhl8JaYhbL9Vv2URwads0wwUh8h1Cymw=", + "id": "3680b867-ab43-4edd-ba0c-9de6378e6d6e", + "name": "2.V0zMytyReOijzzPVtUQUBg==|k6apc5lDk9MHUGRnc2BQOlZh/v2sFhWHFAuW1A5CF5A=|NSlT0UG5uNpdrzWTwp76mTZWnFu1DK5dZCSnBDjlUj4=", "object": "folder", - "revisionDate": "2024-11-14T08:08:41.114408Z" + "revisionDate": "2024-11-23T11:28:00.018027Z" } \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations.json index 4fa9d03..ed366d3 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations.json @@ -1,5 +1,5 @@ { - "billingEmail": "test@laverse.net", + "billingEmail": "test-pbkdf@laverse.net", "businessAddress1": null, "businessAddress2": null, "businessAddress3": null, @@ -7,7 +7,7 @@ "businessName": null, "businessTaxNumber": null, "hasPublicAndPrivateKeys": true, - "id": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952", + "id": "aec64748-b3b3-4e2d-9c06-a44016b7247e", "identifier": null, "maxCollections": null, "maxStorageGb": 32767, diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations_4ce457fe-b3ed-4fdf-afc8-e95f94f69952_collections.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations_4ce457fe-b3ed-4fdf-afc8-e95f94f69952_collections.json deleted file mode 100644 index 5dff1ba..0000000 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations_4ce457fe-b3ed-4fdf-afc8-e95f94f69952_collections.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "externalId": null, - "id": "2896c624-f13e-479b-a482-f3eda4d67a3c", - "name": "2.JEJna7Q3FT0YttSqbRWrpw==|ENCIAPVYEVBFWW9KF5cRUw==|Cgx1oJMA+ncix8salKBvDCxNNA0LTf+lPApF4lThxOk=", - "object": "collection", - "organizationId": "4ce457fe-b3ed-4fdf-afc8-e95f94f69952" -} \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations_aec64748-b3b3-4e2d-9c06-a44016b7247e_collections.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations_aec64748-b3b3-4e2d-9c06-a44016b7247e_collections.json new file mode 100644 index 0000000..a9737b2 --- /dev/null +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_api_organizations_aec64748-b3b3-4e2d-9c06-a44016b7247e_collections.json @@ -0,0 +1,7 @@ +{ + "externalId": null, + "id": "77f6800e-0e3a-4fa6-a06f-4a270d9c3987", + "name": "2.EoE/8Hzpw0d1h5wGrSCAaA==|MXykeOzBijHTX0R8K90tgw==|2uwYB8+LAkBmCLuKN9zkJO/FYeV5mJC7QmG8UTY1h7E=", + "object": "collection", + "organizationId": "aec64748-b3b3-4e2d-9c06-a44016b7247e" +} \ No newline at end of file diff --git a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_identity_connect_token.json b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_identity_connect_token.json index 1e626f4..c5780b0 100644 --- a/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_identity_connect_token.json +++ b/internal/bitwarden/embedded/fixtures/test-pbkdf_POST_identity_connect_token.json @@ -1,13 +1,22 @@ { + "ForcePasswordReset": false, "Kdf": 0, "KdfIterations": 600000, "KdfMemory": 0, "KdfParallelism": 0, - "Key": "2.4gCtht9FEtl60l2H/TkeoQ==|88W/oOuQm723ofEUCD1DRunSFZh7k6RchxKU3p13zk1mnLDOOQmQFjkIPAaKDysAxKmWa6Sm+JSley7Y2u4uO5sHm4MLeSoqAyCWbUyl+NE=|9YLLznXlEifIkg0pEaD2MYwgpFy+QBfApNlC7rvbXRY=", - "PrivateKey": "2.TAP/O7Dh5XpYM849H0GOyg==|mh0hjM2nW48b8ouEStI45cukyZgOosJicloJ/4phFV1fwBMYDKCIu7mDjRnkzgBRK+1X3GkbNhXPAWS6coEGyoCakyC/6WgCbJHoLW9c2gJWNteD53Z1H0lgQt3Q72zSY4pKN+++JSgYH3n91tfxREdnp8lLaPuQoNZB4KBO3c73TYR82XrrHDg9LIVc6QvH+WbousAkdwE7m54LIEkMpHGSbqOJunJUJ0rKByuRiZEmWI12OCX8/9MpTiYLl+IIzv//DAVkORJKLRBVhwhtTJ8OyBhbtPpXtS1sMB7gp2KFWlk8bB6ARxpYCFrR5hlR3zwP11nYZ9GmwjrP93CN/Zvre3Hgs5EaTFyQr+1INb1PtCDhHf0j//OoIM3Uc+wcJvZC3ZB8g+NifakbRKGtjKiPjsuyTkCsvM/ryxnimgn2/q7fKrk7NohNcXC5LvMpW23A0ujJnRFYiZF61IJrODxKe3YEvnl7tk1UnAyQiD6RIqKmD07nZFUuyWp9ygg8NXXOEwcoF2/kNBqtdp64q37gKHKRm9Ton+xJlv5DplIzBRdmitRJDIk+8dZz/d58wifmg6S+XsP8ZD8RBbQAmdAXgJ/mpgWugUxSu75AzSdIUS61wnO+KwKUAXw1njJ2cmj28bCKoruXvFIAy1bgBZKQEWj0IovfmN5lTqRhs0b3RQJ5s60lYL2KxAJiZl+6q3+FJCYeOsE+/h5if+98NLwGadRTfMRXmW4eH2AWZdrWxOpS4ubvWToj6t0H6dMPUn+FTZkpK9PGDswpuAkVuVBkI5N1JBaVpOm8TGgcjFuR6nxLwcgbfObRO6QD70nNq9qEdV9MGrq9Wsz0QqI6jgMFsSQ1tEmTmEAiJbv3pK3rw0HwYaXzd1fQPn+fiJJm7Gx4wdW79YSjRQ6HMlibJ424nC/ntCTqMoRP56P1Mm4kpc2UEUf1Iw2bHqimQkBJQ0u5U1qw1nMtRsMZEAZuzleSGjCiMVDCjhco6eL1B30jPh4J1wcCdUHRRYPmi6cE8JLsqJrzvhQwYe8YbdcS6/qOP/Ja0VvWGM9X2b50HBhAAIa8nxp+3hooDDwb4yjnQUTmYpBe0HOlcDd23omDF1RNxlMO36TuQtJoz88LXX+Ge6m4pe01xm+PLWZVp0ldlefbDxjnO+gIPIZh2D8oRicglUXlRctYyRv7H3g1ai+rZWe42Nl1pruqIKYFtLqbQt6Pd0rKElQBnqMhDh5wvhhVorZ2n0Zf5RfnA/Dcg63ldOmQ+XVRYIVq6FXy4FGDSG/RSaYfikBTomJ26WJOs+dym2eEdw3tuEQHegElc8uaIgCcQtpR2XZUrB5/OC1LcbSRA/dS5Ws4adFzuYdjKMXOS5UutmvP9kqsmD3jPKLD5adNW30nypmdpkyFtH+M4WcKwEpp2OK/3coq7zFTaWyJhlas3m5JbOx1Za3hUMkGd/inXTHhtDYTd75V2zQrdyRUEzfWMN51hZz95dJo0excAbggXiTYznJ4wbbqqhQZj9ss9DaEpwTdJPzDlIff3IECChIy00RkQnghIpRg8LMA3BJOeWke8Y9LL/YOqnelz0ftKHqH0t8nF9g/VdyRiiJLPyW3kSicr4lEb+9xb2b9ci+fSMfAjytOPWixtRM=|paIIlyPdHP5xfJ3K8sD+M7rScNv32XGLxqtrqlxUBO0=", + "Key": "2.kYim9ojCjWGdD2xKKTNxeA==|OClQo9nS5fH/eEJeB03avcvbi562Rwh1hjTZIuFrLyv78G4CLdVhmMtlOA7fw7JIZNV88/kSIkjkOV5ofz/9epEgjvxYHoKf/b+mSkKflCI=|mFoApA3iJEGyJU6IO3/c16dd9jCjVeOfFnDJRHgAHbg=", + "MasterPasswordPolicy": { + "object": "masterPasswordPolicy" + }, + "PrivateKey": "2.KBrLyhtKbrjsqxg+JpjiZA==|LQknPdrGg3r7TGXCwZEnB8rUqCcn8UFvm1J8/AmjemtbZrg/0rNCWt/O0KYLvMu2suYyJJLNV911TsLP2RlJvjVguOPE3W3AkvLRC9o+lLIXsC7eTjyFtzqWtFc5KhfYvXJSbfmntAPIwbkZb8cNCWjsaJ/3kdIk0PigVDie+WO4axgXGHZyqlTnLVN75MWmPyaTwItRbtr0gGkqr50Q6PIiAWaOelMwIwnCmpMWpoTV7ulJnQP3CgHeqlipy4QPxqM8z6ROuOduaUAZ/eOTV1wkIwneCreiHpgKgysn73itRwlMgwGlw4rmAP/GN0llhri9wwkd4XudqgCIYFpXo0B0WfFHfhFtZD5TKHBJXQJb0amvGa3TPfWxSiRfsRAp6syhO3HHmWiOk20hMKd+RswPoe+8p+GpKQLb01X9Ye9vwdK5JMKjO0tSdeNSvOm1Gv4uC00Ju4W8LKeAMddnTnwYfOHW+V2/YgvTdlP+oXEeFdZPPxyCgB4J4E/xioF+RPCofQ0gKfCx3QrkY9IAFuqeAHfnm+sT77oYAYMNcs1oCW346nyCujoMBR0kdkHHHKTp+94/wwd8Zy+c8ov54g2cKNgtTdyhRhjLrnMss24l16aTrD8w3tOjN7w+VfbnC+0E1X0QD3xowFU71M+MmAPvkp0nwgjCMX8v7c4m0Gm63EbWKEXBk1ChvjU0PNLSzmk36NO0FEb4FvyhD1i8Q2DR4xHRj3kyI40CgE3c1G67a/dAiGMm8uu7UkkOOR6ItWApZsi08ayahyYF/vYdgAUni+8jxcin19N4+kfw6b1mqQTLBszr90mCtxjSLVhEFNiTWUiJY5dEpUBRfS4cZX0V51864bNmsO8zqeLKQ1Ia7zXnYYl3DOtGJ1CQQ4PGEJ2GOl8q3OgWMGF3nwTUJuGkzHcYKhErNSiqT2jvEEJ+ExQ7UOpzhLaDHRi9DsKiR1NEIGc3WMC2hOsbuVVvRbFmdoCavSHsZn89gqy6MjPvDtNFxqxfuWazV/FXxE2qbXpXZm4p6o9m5iJG79lu2NJ3tzkzZThOj25ivt6PH9IVY6dI2El342GL0sM6FYZcTUjtGOW9+cwXoOsmJEoMtQbcKO2xg8T9QO3ycwpZZLQft1tfWaAp1iI6e5hvm+4i4FXvIMUTMR8q9ExZmxmfUU3YeWS/hn8CqfHRof3qlovlK4WeDXtWwtS/k5k1zcGexK9AdXPBhTdyQ/kgtNXxoaO5kZqMrgFw+To8GOUxC4tSlYpv/AJwr0ByJf6r2y1+j3JNX3FvVgsdsYy7l+9kKGd67goMoN+oUTq7vs7pD6vVIp7ogP7eYifLZwmo1xqdTllpsjbcXBIvsbjlGCJl8ozkQF+/kFFzxPg0IKKkxNTlhkT1/x5SwFF1yCIXEZUg6V7hlLIznfCFkmE0cEY3FV8ry9/RYFFe1ap3th6zLWmSEu2Ec1XxGp7kiCOT+ns4WQRIuvimwEdycm8uE8TrgvpJL7FIQOqpoRmnn2pYlEPEYkqNZjgo+O+tYoMp8D0R+JReMBcPljfI/3WHly42m0M3ms49ggcav3LF60flHisZSfGc+FwOWB06EzMNHIpcJJhs2WAh9ilUzVcSCij+nuT5RqOJNM2TDin5uceK+Kk=|ErtYr1LBDtGl60Z7xKzGJH+ZbZfVM1vhLIYlOkHfQHY=", "ResetMasterPassword": false, - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJuYmYiOjE3MzE1NzE3MjEsImV4cCI6MTczMTU3ODkyMSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdHxsb2dpbiIsInN1YiI6IjRiMmYwYmVjLTY1ZGItNGEzMS04ZDg5LTI5MjU3MTk1MjMwMiIsInByZW1pdW0iOnRydWUsIm5hbWUiOiJ0ZXN0LXBia2RmQGxhdmVyc2UubmV0IiwiZW1haWwiOiJ0ZXN0LXBia2RmQGxhdmVyc2UubmV0IiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInNzdGFtcCI6IjYyNjg5MGNhLWNkMzktNDQ0Yy1hYTU4LTg2Y2VkZmJmZDRiMSIsImRldmljZSI6IjEwYTAwODg3LTM0NTEtNDYwNy04NDU3LWZjYmZkYzYxZmFhYSIsInNjb3BlIjpbImFwaSJdLCJhbXIiOlsiQXBwbGljYXRpb24iXX0.KVjRCapJ4rt3KwVtrvEyU2yPG_ZJ8BGni1Dx0wsUJO-fTL-HA4-LzsMnZMOOWRVzF7y1Sa-d50BfP15oeL59fT8WjpbOuRuqV5ikWTrE_SPHhbXZX10fgpBgLvfxh8JnuPzm4-uJiRZDJUECtAci6zxctaHX9JCTTt1tiU2NAjBx3znxV7x-6K1ZLLoVeODst-7pOStJFDXk7t2DalW0MXCFz9JcRv3xWpUEYhAQFZ8dzX085ZNNQiTNMbyO7ykN7qEEzxj_LepWjaTQs6_7lb7nZ1mFKLlj6gXHM8ZcgsDIgGZwSwZ4072RUHrmZyjXuzL5ZGeo8l5wxYdR3K9CCw", + "UserDecryptionOptions": { + "HasMasterPassword": true, + "Object": "userDecryptionOptions" + }, + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJuYmYiOjE3MzIzNjEyODAsImV4cCI6MTczMjM2ODQ4MCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdHxsb2dpbiIsInN1YiI6IjJkMWZlYzFmLTZkNmYtNGNjYS1iNTk2LTk3ZGQzODUyMzkyYyIsInByZW1pdW0iOnRydWUsIm5hbWUiOiJ0ZXN0LXBia2RmQGxhdmVyc2UubmV0IiwiZW1haWwiOiJ0ZXN0LXBia2RmQGxhdmVyc2UubmV0IiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInNzdGFtcCI6IjNhNjQxYTAwLTQ2OTMtNDFmNy05MjIwLTg5ZmQ3Zjc2YjFiOSIsImRldmljZSI6IjEwYTAwODg3LTM0NTEtNDYwNy04NDU3LWZjYmZkYzYxZmFhYSIsInNjb3BlIjpbImFwaSIsIm9mZmxpbmVfYWNjZXNzIl0sImFtciI6WyJBcHBsaWNhdGlvbiJdfQ.AdD1zuQzfKfmWg9YcPd1Kl0HPx6BTyEwyWXT5R8jDNN_G4PI6-CvcZtDHtUxA2EPmZoPD4PgNnrTMh6jTgQRtQKzAdKtT83otB__LH5UfRkjJnHQSBGdpBub65fDSSqLzsxYu9_uU8JI-5Fk-9vRK6Y_iSulIxkx_nEBJmurKkCNfI6ifuPgLToUvd5wK8M3FEvsR7Zn_AOgUZ-Y_OkV7OtNnA1ulvcmulTI-W0bc8iqRZAhlyhzcwyXdWO0mLjYSIXo2T433ZJKq-_rDSY4Y_BlsrjHiIja74kKpKkyHdYhQWZ9WEJCLsjMF_nsLodsfl4AJmHuRi7UwQIBJJmzsw", "expires_in": 7200, - "scope": "api", + "refresh_token": "iTPhldQ_8NlWHtTggSNV7vTutXhPkqHx_sVBcOmmnkW6D0pEvwKdA7wwVAlPLOAyAhfn6UcOFjXYpQhZ7He_AA==", + "scope": "api offline_access", "token_type": "Bearer" } \ No newline at end of file diff --git a/internal/bitwarden/embedded/password_manager_webapi.go b/internal/bitwarden/embedded/password_manager_webapi.go index da1b30c..4bd4d12 100644 --- a/internal/bitwarden/embedded/password_manager_webapi.go +++ b/internal/bitwarden/embedded/password_manager_webapi.go @@ -2,6 +2,9 @@ package embedded import ( "context" + "crypto/rsa" + "crypto/x509" + "encoding/base64" "fmt" "os" "path/filepath" @@ -18,6 +21,7 @@ import ( type PasswordManagerClient interface { BaseVault + ConfirmInvite(ctx context.Context, orgId, userEmail string) error CreateObject(ctx context.Context, obj models.Object) (*models.Object, error) CreateOrganization(ctx context.Context, organizationName, organizationLabel, billingEmail string) (string, error) CreateAttachmentFromContent(ctx context.Context, itemId, filename string, content []byte) (*models.Object, error) @@ -27,6 +31,7 @@ type PasswordManagerClient interface { EditObject(ctx context.Context, obj models.Object) (*models.Object, error) GetAPIKey(ctx context.Context, username, password string) (*models.ApiKey, error) GetAttachment(ctx context.Context, itemId, attachmentId string) ([]byte, error) + InviteUser(ctx context.Context, orgId, userEmail string) error LoginWithAPIKey(ctx context.Context, password, clientId, clientSecret string) error LoginWithPassword(ctx context.Context, username, password string) error Logout(ctx context.Context) error @@ -111,6 +116,28 @@ type webAPIVault struct { serverURL string } +func (v *webAPIVault) ConfirmInvite(ctx context.Context, orgId, userEmail string) error { + v.vaultOperationMutex.RLock() + defer v.vaultOperationMutex.RUnlock() + + orgUser, err := v.findOrganizationUser(ctx, orgId, userEmail) + if err != nil { + return fmt.Errorf("error getting organization user : %w", err) + } + + publicKey, err := v.getUserPublicKey(ctx, orgUser.UserId) + if err != nil { + return fmt.Errorf("error getting user public key: %w", err) + } + + orgKey, err := keybuilder.RSAEncrypt(v.loginAccount.Secrets.OrganizationSecrets[orgId].Key.Key, publicKey) + if err != nil { + return fmt.Errorf("error rsa encrypting organization key: %w", err) + } + + return v.client.ConfirmOrganizationUser(ctx, orgId, orgUser.Id, string(orgKey)) +} + func (v *webAPIVault) CreateAttachmentFromContent(ctx context.Context, itemId, filename string, content []byte) (*models.Object, error) { v.vaultOperationMutex.Lock() defer v.vaultOperationMutex.Unlock() @@ -543,6 +570,22 @@ func (v *webAPIVault) GetAttachment(ctx context.Context, itemId, attachmentId st return []byte(decryptedBody), nil } +func (v *webAPIVault) InviteUser(ctx context.Context, orgId, userEmail string) error { + v.vaultOperationMutex.Lock() + defer v.vaultOperationMutex.Unlock() + + req := webapi.InviteUserRequest{ + Emails: []string{userEmail}, + Type: 0, // 0:Owner, 2:User + AccessAll: true, + AccessSecretsManager: false, + Groups: []string{}, + Collections: []string{}, + } + + return v.client.InviteUser(ctx, orgId, req) +} + func (v *webAPIVault) LoginWithAPIKey(ctx context.Context, password, clientId, clientSecret string) error { v.vaultOperationMutex.Lock() defer v.vaultOperationMutex.Unlock() @@ -711,6 +754,38 @@ func (v *webAPIVault) continueLoginWithTokens(ctx context.Context, tokenResp web return v.sync(ctx) } +func (v *webAPIVault) findOrganizationUser(ctx context.Context, orgId, userEmail string) (*webapi.OrganizationUserDetails, error) { + orgUsers, err := v.client.GetOrganizationUsers(ctx, orgId) + if err != nil { + return nil, fmt.Errorf("error getting users: %w", err) + } + + for _, user := range orgUsers { + if user.Email == userEmail { + return &user, nil + } + } + return nil, nil +} + +func (v *webAPIVault) getUserPublicKey(ctx context.Context, userId string) (*rsa.PublicKey, error) { + userPublicKey, err := v.client.GetUserPublicKey(ctx, userId) + if err != nil { + return nil, fmt.Errorf("error getting user's public key: %w", err) + } + + decodedKey, err := base64.StdEncoding.DecodeString(string(userPublicKey)) + if err != nil { + return nil, fmt.Errorf("error decoding public key: %w", err) + } + + pubKey, err := x509.ParsePKIXPublicKey(decodedKey) + if err != nil { + return nil, fmt.Errorf("failed to parse public key: %v", err) + } + return pubKey.(*rsa.PublicKey), nil +} + func (v *webAPIVault) prepareAttachmentCreationRequest(ctx context.Context, itemId, filename string, content []byte) (*webapi.AttachmentRequestData, []byte, error) { // NOTE: We don't Sync() to get the latest version of Object before adding an attachment to it, because we // assume the Object's key can't change. diff --git a/internal/bitwarden/embedded/testhelper_fixtures_create_test.go b/internal/bitwarden/embedded/testhelper_fixtures_create_test.go index 18b0433..4c4d1ce 100644 --- a/internal/bitwarden/embedded/testhelper_fixtures_create_test.go +++ b/internal/bitwarden/embedded/testhelper_fixtures_create_test.go @@ -36,6 +36,9 @@ func TestCreateTestAccounts(t *testing.T) { KdfMemory: 64, KdfParallelism: 4, }, false) + + createOrganization(t, Pdkdf2Mocks, Argon2Mocks) + createOrganizationResources(t, Pdkdf2Mocks, OrganizationID) } func TestCreateAccessTokenLoginMock(t *testing.T) { @@ -89,6 +92,84 @@ func TestCreateAccessTokenLoginMock(t *testing.T) { } } +func createOrganization(t *testing.T, account1 string, account2 string) { + ctx := context.Background() + + accountEmail1 := fmt.Sprintf("%s@laverse.net", account1) + httpClient := http.Client{ + Transport: &diskTransport{ + Prefix: path.Join(fixturesDir(t), account1), + }, + } + vault := NewPasswordManagerClient(ServerURL, testDeviceIdentifer, "dev", WithPasswordManagerHttpOptions(webapi.WithCustomClient(httpClient))) + + err := vault.LoginWithPassword(ctx, accountEmail1, TestPassword) + if err != nil { + t.Fatal(err) + } + + OrganizationID, err = vault.CreateOrganization(ctx, "test-organization", "test-organization-default", accountEmail1) + if err != nil { + t.Fatal(err) + } + + if err != nil { + t.Fatal(err) + } + + accountEmail2 := fmt.Sprintf("%s@laverse.net", account2) + err = vault.InviteUser(ctx, OrganizationID, accountEmail2) + if err != nil { + t.Fatal(err) + } + + err = vault.ConfirmInvite(ctx, OrganizationID, accountEmail2) + if err != nil { + t.Fatal(err) + } +} + +func createOrganizationResources(t *testing.T, account1 string, orgId string) { + ctx := context.Background() + + accountEmail1 := fmt.Sprintf("%s@laverse.net", account1) + httpClient := http.Client{ + Transport: &diskTransport{ + Prefix: path.Join(fixturesDir(t), account1), + }, + } + vault := NewPasswordManagerClient(ServerURL, testDeviceIdentifer, "dev", WithPasswordManagerHttpOptions(webapi.WithCustomClient(httpClient))) + + err := vault.LoginWithPassword(ctx, accountEmail1, TestPassword) + if err != nil { + t.Fatal(err) + } + + orgCol, err := vault.CreateObject(ctx, models.Object{ + Object: models.ObjectTypeOrgCollection, + Name: "org-collection", + OrganizationID: orgId, + }) + if err != nil { + t.Fatal(err) + } + + _, err = vault.CreateObject(ctx, models.Object{ + Object: models.ObjectTypeItem, + Type: models.ItemTypeLogin, + Name: "Item in org Vault", + OrganizationID: orgCol.OrganizationID, + CollectionIds: []string{orgCol.ID}, + Login: models.Login{ + Username: "my-org-username", + }, + }) + + if err != nil { + t.Fatal(err) + } +} + func createTestAccount(t *testing.T, mockName string, kdfConfig models.KdfConfiguration, withResources bool) { ctx := context.Background() @@ -197,33 +278,4 @@ func createTestAccount(t *testing.T, mockName string, kdfConfig models.KdfConfig if err != nil { t.Fatal(err) } - - orgId, err := vault.CreateOrganization(ctx, "test-organization", "test-organization-label", "test@laverse.net") - if err != nil { - t.Fatal(err) - } - - orgCol, err := vault.CreateObject(ctx, models.Object{ - Object: models.ObjectTypeOrgCollection, - Name: "org-collection", - OrganizationID: orgId, - }) - if err != nil { - t.Fatal(err) - } - - _, err = vault.CreateObject(ctx, models.Object{ - Object: models.ObjectTypeItem, - Type: models.ItemTypeLogin, - Name: "Item in org Vault", - OrganizationID: orgCol.OrganizationID, - CollectionIds: []string{orgCol.ID}, - Login: models.Login{ - Username: "my-org-username", - }, - }) - - if err != nil { - t.Fatal(err) - } } diff --git a/internal/bitwarden/embedded/testhelper_fixtures_transport_test.go b/internal/bitwarden/embedded/testhelper_fixtures_transport_test.go index d34c790..6f43ec4 100644 --- a/internal/bitwarden/embedded/testhelper_fixtures_transport_test.go +++ b/internal/bitwarden/embedded/testhelper_fixtures_transport_test.go @@ -26,8 +26,10 @@ func (d *diskTransport) RoundTrip(req *http.Request) (*http.Response, error) { return nil, err } - if err := d.saveResponseToFile(req, resp); err != nil { - return nil, fmt.Errorf("error saving response to file: %w", err) + if resp.ContentLength > 0 { + if err := d.saveResponseToFile(req, resp); err != nil { + return nil, fmt.Errorf("error saving response to file: %w", err) + } } return resp, nil diff --git a/internal/bitwarden/models/password_manager.go b/internal/bitwarden/models/password_manager.go index bec7143..578f79d 100644 --- a/internal/bitwarden/models/password_manager.go +++ b/internal/bitwarden/models/password_manager.go @@ -63,6 +63,8 @@ const ( ObjectApiKey ObjectType = "api-key" ObjectProject ObjectType = "project" ObjectSecret ObjectType = "secret" + ObjectUserKey ObjectType = "userKey" + ObjectOrgMember ObjectType = "org-member" ) const ( @@ -152,3 +154,14 @@ type Attachment struct { Key string `json:"key"` Object ObjectType `json:"object"` } + +// TODO: Use or drop +type OrgMember struct { + Email string `json:"email,omitempty"` + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + Status int `json:"status,omitempty"` + Type int `json:"type,omitempty"` + TwoFactorEnabled bool `json:"twoFactorEnabled,omitempty"` + Object ObjectType `json:"object,omitempty"` +} diff --git a/internal/bitwarden/webapi/client.go b/internal/bitwarden/webapi/client.go index 40d0220..186a853 100644 --- a/internal/bitwarden/webapi/client.go +++ b/internal/bitwarden/webapi/client.go @@ -27,6 +27,7 @@ const ( type Client interface { ClearSession() + ConfirmOrganizationUser(ctx context.Context, orgID, orgUserID, key string) error CreateFolder(ctx context.Context, obj Folder) (*Folder, error) CreateObject(context.Context, models.Object) (*models.Object, error) CreateObjectAttachment(ctx context.Context, itemId string, data []byte, req AttachmentRequestData) (*CreateObjectAttachmentResponse, error) @@ -50,11 +51,14 @@ type Client interface { GetCollections(ctx context.Context, orgID string) ([]CollectionResponseItem, error) GetContentFromURL(ctx context.Context, url string) ([]byte, error) GetObjectAttachment(ctx context.Context, itemId, attachmentId string) (*models.Attachment, error) + GetOrganizationUsers(ctx context.Context, orgId string) ([]OrganizationUserDetails, error) GetProfile(context.Context) (*Profile, error) GetProject(ctx context.Context, projectId string) (*models.Project, error) GetProjects(ctx context.Context, orgId string) ([]models.Project, error) GetSecret(ctx context.Context, secretId string) (*Secret, error) GetSecrets(ctx context.Context, orgId string) ([]SecretSummary, error) + GetUserPublicKey(ctx context.Context, userId string) ([]byte, error) + InviteUser(ctx context.Context, orgId string, user InviteUserRequest) error LoginWithAccessToken(ctx context.Context, clientId, clientSecret string) (*MachineTokenResponse, error) LoginWithAPIKey(ctx context.Context, clientId, clientSecret string) (*TokenResponse, error) LoginWithPassword(ctx context.Context, username, password string, kdfConfig models.KdfConfiguration) (*TokenResponse, error) @@ -89,6 +93,16 @@ func (c *client) ClearSession() { c.sessionAccessToken = "" } +func (c *client) ConfirmOrganizationUser(ctx context.Context, orgID, orgUserId, key string) error { + httpReq, err := c.prepareRequest(ctx, "POST", fmt.Sprintf("%s/api/organizations/%s/users/%s/confirm", c.serverURL, orgID, orgUserId), ConfirmUserRequest{Key: key}) + if err != nil { + return fmt.Errorf("error preparing organization user confirmation request: %w", err) + } + + _, err = doRequest[[]byte](ctx, c.httpClient, httpReq) + return err +} + func (c *client) CreateFolder(ctx context.Context, obj Folder) (*Folder, error) { httpReq, err := c.prepareRequest(ctx, "POST", fmt.Sprintf("%s/api/folders", c.serverURL), obj) if err != nil { @@ -424,6 +438,42 @@ func (c *client) GetSecrets(ctx context.Context, orgId string) ([]SecretSummary, return secrets.Secrets, nil } +func (c *client) GetUserPublicKey(ctx context.Context, userId string) ([]byte, error) { + httpReq, err := c.prepareRequest(ctx, "GET", fmt.Sprintf("%s/api/users/%s/public-key", c.serverURL, userId), nil) + if err != nil { + return nil, fmt.Errorf("error preparing user public key retrieval request: %w", err) + } + + resp, err := doRequest[UserPublicKeyResponse](ctx, c.httpClient, httpReq) + if err != nil { + return nil, err + } + return []byte(resp.PublicKey), nil +} + +func (c *client) GetOrganizationUsers(ctx context.Context, orgId string) ([]OrganizationUserDetails, error) { + httpReq, err := c.prepareRequest(ctx, "GET", fmt.Sprintf("%s/api/organizations/%s/users", c.serverURL, orgId), nil) + if err != nil { + return nil, fmt.Errorf("error preparing organization user list retrieval request: %w", err) + } + + resp, err := doRequest[OrganizationUserList](ctx, c.httpClient, httpReq) + if err != nil { + return nil, err + } + return resp.Data, nil +} + +func (c *client) InviteUser(ctx context.Context, orgId string, inviteRequest InviteUserRequest) error { + httpReq, err := c.prepareRequest(ctx, "POST", fmt.Sprintf("%s/api/organizations/%s/users/invite", c.serverURL, orgId), inviteRequest) + if err != nil { + return fmt.Errorf("error preparing user invitation request: %w", err) + } + + _, err = doRequest[[]byte](ctx, c.httpClient, httpReq) + return err +} + func (c *client) LoginWithAccessToken(ctx context.Context, clientId, clientSecret string) (*MachineTokenResponse, error) { form := url.Values{} form.Add("scope", "api.secrets") diff --git a/internal/bitwarden/webapi/models.go b/internal/bitwarden/webapi/models.go index 1a65307..9dd6aab 100644 --- a/internal/bitwarden/webapi/models.go +++ b/internal/bitwarden/webapi/models.go @@ -50,6 +50,70 @@ type OrganizationCreationRequest struct { ExternalID string `json:"externalId"` } +type InviteUserRequest struct { + Emails []string `json:"emails"` + Collections []string `json:"collections"` + AccessAll bool `json:"accessAll"` + Permissions struct { + Response interface{} `json:"response"` + } `json:"permissions"` + Type int `json:"type"` + Groups []string `json:"groups"` + AccessSecretsManager bool `json:"accessSecretsManager"` +} + +type ConfirmUserRequest struct { + Key string `json:"key"` +} + +type UserPublicKeyResponse struct { + Object models.ObjectType `json:"object"` + PublicKey string `json:"publicKey"` + UserId string `json:"userId"` +} + +type OrganizationUserList struct { + Data []OrganizationUserDetails `json:"data"` + Object models.ObjectType `json:"object"` +} + +type OrganizationUserDetails struct { + AccessAll bool `json:"accessAll"` + AccessSecretsManager bool `json:"accessSecretsManager"` + AvatarColor string `json:"avatarColor"` + Collections []Collection `json:"collections"` + Email string `json:"email"` + ExternalId string `json:"externalId"` + Groups []string `json:"groups"` + HasMasterPassword bool `json:"hasMasterPassword"` + Id string `json:"id"` + Name string `json:"name"` + Object models.ObjectType `json:"object"` + Permissions struct { + AccessEventLogs bool `json:"accessEventLogs"` + AccessImportExport bool `json:"accessImportExport"` + AccessReports bool `json:"accessReports"` + CreateNewCollections bool `json:"createNewCollections"` + DeleteAnyCollection bool `json:"deleteAnyCollection"` + DeleteAssignedCollections bool `json:"deleteAssignedCollections"` + EditAnyCollection bool `json:"editAnyCollection"` + EditAssignedCollections bool `json:"editAssignedCollections"` + ManageGroups bool `json:"manageGroups"` + ManagePolicies bool `json:"managePolicies"` + ManageResetPassword bool `json:"manageResetPassword"` + ManageScim bool `json:"manageScim"` + ManageSso bool `json:"manageSso"` + ManageUsers bool `json:"manageUsers"` + } `json:"permissions"` + ResetPasswordEnrolled bool `json:"resetPasswordEnrolled"` + SsoBound bool `json:"ssoBound"` + Status int `json:"status"` + TwoFactorEnabled bool `json:"twoFactorEnabled"` + Type int `json:"type"` + UserId string `json:"userId"` + UsesKeyConnector bool `json:"usesKeyConnector"` +} + type CreateOrganizationRequest struct { Name string `json:"name"` BillingEmail string `json:"billingEmail"`