update new version

This commit is contained in:
Alexander Phillips 2022-08-13 23:21:19 +08:00
parent 837c87f088
commit 49dbaa23b8
204 changed files with 276300 additions and 1 deletions

2
.gitignore vendored
View File

@ -8,3 +8,5 @@ Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk
/.idea

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "vaultwarden"]
path = vaultwarden
url = https://github.com/dani-garcia/vaultwarden.git

View File

@ -28,7 +28,7 @@ bitwarden 服务器的开源实现 vaultwarden 的 Windows 部署
cargo build --features sqlite --release
```
主程序构建完成,位置 `arget\release\vaultwarden.exe`
主程序构建完成,位置 `target\release\vaultwarden.exe`
其他构建选项和 web-vault 构建方法具体内容参考 [https://github.com/dani-garcia/vaultwarden/wiki/Building-binary](https://github.com/dani-garcia/vaultwarden/wiki/Building-binary) 自行构建即可

15
build.ps1 Normal file
View File

@ -0,0 +1,15 @@
Write-Output "If an error occurs,it is fine."
Write-Output "modify script as prompted otherwise there is not usable vaultwarden-windows.tar.gz"
# build exe
Set-Location .\vaultwarden\
cargo build --features sqlite --release
Set-Location ..
Remove-Item .\release\ -Recurse -Force
mkdir release\vaultwarden-windows\data
Copy-Item .\vaultwarden\target\release\vaultwarden.exe .\release\vaultwarden-windows\
# unzip web-vault
tar -xzvf .\bw_web.tar.gz -C .\release\vaultwarden-windows\
# pack files
Set-Location release
tar -czvf ..\vaultwarden-windows.tar.gz *
Set-Location ..

BIN
bw_web.tar.gz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
href="/404/bootstrap.min.css"
rel="stylesheet"
type="text/css"
integrity="sha384-hA/ESrxp2b05ywLtD9YwM6m+pNyLRY4+ruk6dWK00SM4k6SQs0bfrITJVSf6uZyH"
/>
<link href="/404/styles.css" rel="stylesheet" type="text/css" />
<link rel="apple-touch-icon" sizes="180x180" href="/images/icons/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/images/icons/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/images/icons/favicon-16x16.png" />
<link rel="mask-icon" href="/images/icons/safari-pinned-tab.svg" color="#175DDC" />
<link rel="manifest" href="/manifest.json" />
<title>Page not found!</title>
<meta name="description" content="404 Page Not Found" />
</head>
<body>
<div class="banner">
<div class="container inner banner">
<div class="row align-items-center">
<div class="col brand">
<i class="bwi bwi-shield"></i>&nbsp; <strong>bit</strong>warden
</div>
</div>
</div>
</div>
<div class="container inner content">
<h2>Page not found!</h2>
<p>Sorry, but the page you were looking for could not be found.</p>
<p>
<a href="/">
<img src="/images/404.png" class="img-fluid" alt="404 image" width="80%" />
</a>
</p>
<p>
You can <a href="/">return to the web vault</a>, or
<a href="https://github.com/dani-garcia/vaultwarden">contact us</a>.
</p>
</div>
<div class="container footer text-muted content">© Copyright 2022 Bitwarden, Inc. (Powered by Vaultwarden)</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,151 @@
@font-face {
font-family: "Open Sans";
font-style: italic;
font-weight: 300;
src: url(../fonts/Open_Sans-italic-300.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: italic;
font-weight: 400;
src: url(../fonts/Open_Sans-italic-400.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: italic;
font-weight: 600;
src: url(../fonts/Open_Sans-italic-600.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: italic;
font-weight: 700;
src: url(../fonts/Open_Sans-italic-700.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: italic;
font-weight: 800;
src: url(../fonts/Open_Sans-italic-800.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: normal;
font-weight: 300;
src: url(../fonts/Open_Sans-normal-300.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: normal;
font-weight: 400;
src: url(../fonts/Open_Sans-normal-400.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: normal;
font-weight: 600;
src: url(../fonts/Open_Sans-normal-600.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: normal;
font-weight: 700;
src: url(../fonts/Open_Sans-normal-700.woff) format("woff");
unicode-range: U+0-10FFFF;
}
@font-face {
font-family: "Open Sans";
font-style: normal;
font-weight: 800;
src: url(../fonts/Open_Sans-normal-800.woff) format("woff");
unicode-range: U+0-10FFFF;
}
body {
font-family: "Open Sans";
}
html,
body,
.row {
height: 100%;
-webkit-font-smoothing: antialiased;
}
h2 {
font-size: 25px;
margin-bottom: 12.5px;
font-weight: 500;
line-height: 1.1;
}
.brand {
font-size: 23px;
line-height: 25px;
color: #fff;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.banner {
background-color: #175ddc;
height: 56px;
}
.content {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 15px;
padding-right: 15px;
}
.footer {
padding: 40px 0 40px 0;
border-top: 1px solid #dee2e6;
}
/* Bitwarden icons, manually copied */
@font-face {
font-family: "bwi-font";
src: url(../images/bwi-font.svg) format("svg"), url(../fonts/bwi-font.ttf) format("truetype"),
url(../fonts/bwi-font.woff) format("woff"), url(../fonts/bwi-font.woff2) format("woff2");
font-weight: normal;
font-style: normal;
font-display: block;
}
.bwi {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: "bwi-font" !important;
speak: never;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
display: inline-block;
/* Better Font Rendering */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.bwi-shield:before {
content: "\e932";
}

View File

@ -0,0 +1,17 @@
{
"name": "Bitwarden Vault",
"icons": [
{
"src": "images/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "images/icons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#175DDC",
"background_color": "#175DDC"
}

View File

@ -0,0 +1,15 @@
{
"trustedFacets": [
{
"version": {
"major": 1,
"minor": 0
},
"ids": [
"https://vault.bitwarden.com",
"ios:bundle-id:com.8bit.bitwarden",
"android:apk-key-hash:dUGFzUzf3lmHSLBDBIv+WaFyZMI"
]
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,13 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* @file Web Cryptography API shim
* @author Artem S Vybornov <vybornov@gmail.com>
* @license MIT
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,197 @@
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/* @license
Papa Parse
v5.3.2
https://github.com/mholt/PapaParse
License: MIT
*/
/*!
JSZip v3.10.0 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
JSZip uses the library pako released under the MIT license :
https://github.com/nodeca/pako/blob/main/LICENSE
*/
/*!
* Bootstrap v4.6.0 (https://getbootstrap.com/)
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
/*!
* Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2021-02-16
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*!
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2021-03-02T17:08Z
*/
/*!
* lunr.Builder
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.Index
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.Pipeline
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.Set
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.TokenSet
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.Vector
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.stemmer
* Copyright (C) 2020 Oliver Nightingale
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
*/
/*!
* lunr.stopWordFilter
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.tokenizer
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.trimmer
* Copyright (C) 2020 Oliver Nightingale
*/
/*!
* lunr.utils
* Copyright (C) 2020 Oliver Nightingale
*/
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/*! https://mths.be/punycode v1.4.1 by @mathias */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* @license Angular v12.2.16
* (c) 2010-2021 Google LLC. https://angular.io/
* License: MIT
*/
/**
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
* Copyright (C) 2020 Oliver Nightingale
* @license MIT
*/
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="images/icons/mstile-150x150.png"/>
<TileColor>#175DDC</TileColor>
</tile>
</msapplication>
</browserconfig>

View File

@ -0,0 +1 @@
<!doctype html><html><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="HandheldFriendly" content="true"/><title>Bitwarden Captcha Connector</title><link href="connectors/captcha.85e69d8be078efe490cf.css" rel="stylesheet"></head><body><div id="captcha"></div><script defer="defer" src="connectors/captcha.a111ae84c011ccd106f0.js"></script></body></html>

View File

@ -0,0 +1 @@
<!doctype html><html class="theme_light"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="HandheldFriendly" content="true"/><title>Bitwarden Captcha Connector</title><link href="connectors/captcha.85e69d8be078efe490cf.css" rel="stylesheet"></head><body class="layout_frontend"><div class="row justify-content-md-center mt-5"><div><img src="images/logo-dark@2x.png" class="logo mb-2" alt="Bitwarden"/><p id="captchaRequired" class="lead text-center mx-4 mb-4">Captcha Required</p><div id="captcha"></div></div></div><script defer="defer" src="connectors/captcha.a111ae84c011ccd106f0.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
(()=>{"use strict";var e={69923:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(c,r){function i(e){try{d(o.next(e))}catch(t){r(t)}}function a(e){try{d(o.throw(e))}catch(t){r(t)}}function d(e){var t;e.done?c(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,a)}d((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const c=n(31848);window.location.pathname.includes("mobile")?n(25374):n(54157),document.addEventListener("DOMContentLoaded",(()=>{!function(){o(this,void 0,void 0,(function*(){yield l(),window.addEventListener("message",(e=>{e.origin&&""!==e.origin&&e.origin===i&&"start"===e.data&&l()}),!1)}))}()})),window.captchaSuccess=function(e){a?document.location.replace("bitwarden://captcha-callback?token="+encodeURIComponent(e)):function(e){if(d)return;parent.postMessage("success|"+e,r),d=!0}(e)},window.captchaError=function(){u("An error occurred with the captcha. Try again.")};let r=null,i=null,a=null,d=!1;function l(){var e;return o(this,void 0,void 0,(function*(){d=!1;const t=c.getQsParam("data");if(!t)return void u("No data.");if(r=c.getQsParam("parent"),!r)return void u("No parent.");let n;r=decodeURIComponent(r),i=new URL(r).origin;try{n=JSON.parse(c.b64Decode(t,!0))}catch(m){return void u("Cannot parse data.")}a=null!=n.callbackUri||!0===n.mobile;let l="https://hcaptcha.com/1/api.js?render=explicit";n.locale&&(l+=`&hl=${null!==(e=encodeURIComponent(n.locale))&&void 0!==e?e:"en"}`);const h=document.getElementById("captchaRequired");n.captchaRequiredText&&h&&(h.textContent=n.captchaRequiredText);const f=document.createElement("script");f.src=l,f.async=!0,f.defer=!0,f.addEventListener("load",(()=>{hcaptcha.render("captcha",{sitekey:encodeURIComponent(n.siteKey),callback:"captchaSuccess","error-callback":"captchaError"}),function(){o(this,void 0,void 0,(function*(){const e=document.body.lastChild;for(;;)s({height:"hidden"===e.style.visibility?document.documentElement.offsetHeight:document.documentElement.scrollHeight,width:document.documentElement.scrollWidth}),yield p(100)}))}()})),document.head.appendChild(f)}))}function u(e){parent.postMessage("error|"+e,r)}function s(e){parent.postMessage("info|"+JSON.stringify(e),r)}function p(e){return o(this,void 0,void 0,(function*(){yield new Promise((t=>setTimeout(t,e)))}))}},31848:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.b64Decode=t.getQsParam=void 0,t.getQsParam=function(e){const t=window.location.href;e=e.replace(/[\[\]]/g,"\\$&");const n=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null},t.b64Decode=function(e,t=!1){return t&&(e=e.replace(/ /g,"+")),decodeURIComponent(Array.prototype.map.call(atob(e),(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""))}},25374:(e,t,n)=>{n.r(t)},54157:(e,t,n)=>{n.r(t)}},t={};function n(o){var c=t[o];if(void 0!==c)return c.exports;var r=t[o]={exports:{}};return e[o].call(r.exports,r,r.exports,n),r.exports}n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};n(69923)})();
//# sourceMappingURL=captcha.a111ae84c011ccd106f0.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
html,body{margin:0;padding:0}body{background:#efeff4 url(../images/loading.svg) 0 0 no-repeat}iframe{display:block;width:100%;height:400px;border:none;margin:0;padding:0}
/*# sourceMappingURL=duo.03d3232066d89682b1ee.css.map*/

View File

@ -0,0 +1 @@
{"version":3,"file":"connectors/duo.03d3232066d89682b1ee.css","mappings":"AAAA,UAEE,SACA,UAGF,KACE,yEAGF,OACE,cACA,WACA,aACA,YACA,M","sources":["webpack://@bitwarden/web-vault/./src/connectors/duo.scss"],"sourcesContent":["html,\nbody {\n margin: 0;\n padding: 0;\n}\n\nbody {\n background: #efeff4 url(\"../images/loading.svg\") 0 0 no-repeat;\n}\n\niframe {\n display: block;\n width: 100%;\n height: 400px;\n border: none;\n margin: 0;\n padding: 0;\n}\n"],"names":[],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
(()=>{"use strict";var e={31848:(e,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.b64Decode=o.getQsParam=void 0,o.getQsParam=function(e){const o=window.location.href;e=e.replace(/[\[\]]/g,"\\$&");const t=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(o);return t?t[2]?decodeURIComponent(t[2].replace(/\+/g," ")):"":null},o.b64Decode=function(e,o=!1){return o&&(e=e.replace(/ /g,"+")),decodeURIComponent(Array.prototype.map.call(atob(e),(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""))}},57109:(e,o,t)=>{t.r(o)}},o={};function t(n){var r=o[n];if(void 0!==r)return r.exports;var c=o[n]={exports:{}};return e[n](c,c.exports,t),c.exports}t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};(()=>{const e=t(31848);t(57109),document.addEventListener("DOMContentLoaded",(()=>{const o=e.getQsParam("code"),t=e.getQsParam("state");if(null!=t&&t.includes(":clientId=browser"))!function(e,o){window.postMessage({command:"authResult",code:e,state:o},"*");const t=("; "+document.cookie).split("; ssoHandOffMessage=").pop().split(";").shift();document.cookie="ssoHandOffMessage=;SameSite=strict;max-age=0";const n=document.getElementById("content");n.innerHTML="";const r=document.createElement("p");r.innerText=t,n.appendChild(r)}(o,t);else{window.location.href=window.location.origin+"/#/sso?code="+o+"&state="+t;const e=function(e,o){const t=new RegExp(o).exec(e);if(!t)return null;return t[0]}(t,"(?<=_returnUri=')(.*)(?=')");window.location.href=e?window.location.origin+`/#${e}`:window.location.origin+"/#/sso?code="+o+"&state="+t}}))})()})();
//# sourceMappingURL=sso.3e58297e1e9fa274f91c.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
(()=>{"use strict";var e={7398:(e,t)=>{function n(e){if(Array.isArray(e)&&(e=Uint8Array.from(e)),e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array){let t="";const n=e.byteLength;for(let r=0;r<n;r++)t+=String.fromCharCode(e[r]);e=window.btoa(t)}if("string"!=typeof e)throw new Error("could not coerce to string");return e=e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=*$/g,"")}Object.defineProperty(t,"__esModule",{value:!0}),t.parseWebauthnJson=t.buildDataString=void 0,t.buildDataString=function(e){const t=e.response,r=new Uint8Array(t.authenticatorData),o=new Uint8Array(t.clientDataJSON),a=new Uint8Array(e.rawId),c=new Uint8Array(t.signature),i={id:e.id,rawId:n(a),type:e.type,extensions:e.getClientExtensionResults(),response:{authenticatorData:n(r),clientDataJson:n(o),signature:n(c)}};return JSON.stringify(i)},t.parseWebauthnJson=function(e){const t=JSON.parse(e),n=t.challenge.replace(/-/g,"+").replace(/_/g,"/");return t.challenge=Uint8Array.from(atob(n),(e=>e.charCodeAt(0))),t.allowCredentials.forEach((e=>{const t=e.id.replace(/\_/g,"/").replace(/\-/g,"+");e.id=Uint8Array.from(atob(t),(e=>e.charCodeAt(0)))})),t}},31848:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.b64Decode=t.getQsParam=void 0,t.getQsParam=function(e){const t=window.location.href;e=e.replace(/[\[\]]/g,"\\$&");const n=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null},t.b64Decode=function(e,t=!1){return t&&(e=e.replace(/ /g,"+")),decodeURIComponent(Array.prototype.map.call(atob(e),(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""))}},48702:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,a){function c(e){try{s(r.next(e))}catch(t){a(t)}}function i(e){try{s(r.throw(e))}catch(t){a(t)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(c,i)}s((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const o=n(31848),a=n(7398);n(68674);let c,i=!1,s=null,d=!1,l="en",u={};function f(){if(i)return;if(s=o.getQsParam("parent"),!s)return void y("No parent.");s=decodeURIComponent(s),l=o.getQsParam("locale").replace("-","_");"1"===o.getQsParam("v")?function(){const e=o.getQsParam("data");if(!e)return void y("No data.");c=o.b64Decode(e)}():function(){let e=null;try{e=JSON.parse(o.b64Decode(o.getQsParam("data")))}catch(t){return void y("Cannot parse data.")}c=e.data}(),i=!0}function g(e){return r(this,void 0,void 0,(function*(){const t=`locales/${e}/messages.json?cache=405zcj`,n=yield fetch(t);return yield n.json()}))}function m(e){var t;return(null===(t=u[e])||void 0===t?void 0:t.message)||""}function p(){if(d)return;if(!("credentials"in navigator))return void y(m("webAuthnNotSupported"));if(f(),!c)return void y("No data.");let e;try{e=a.parseWebauthnJson(c)}catch(t){return void y("Cannot parse data.")}!function(e){r(this,void 0,void 0,(function*(){try{const t=yield navigator.credentials.get({publicKey:e});if(d)return;const n=a.buildDataString(t),r=document.getElementById("remember").checked;window.postMessage({command:"webAuthnResult",data:n,remember:r},"*"),d=!0,function(e){document.getElementById("webauthn-button").disabled=!0;const t=document.getElementById("msg");b(t),t.textContent=e,t.classList.add("alert"),t.classList.add("alert-success")}(m("webAuthnSuccess"))}catch(t){y(t)}}))}(e)}function y(e){const t=document.getElementById("msg");b(t),t.textContent=e,t.classList.add("alert"),t.classList.add("alert-danger")}function b(e){e.classList.remove("alert"),e.classList.remove("alert-danger"),e.classList.remove("alert-success")}document.addEventListener("DOMContentLoaded",(()=>r(void 0,void 0,void 0,(function*(){f();try{u=yield g(l)}catch(n){console.error("Failed to load the locale",l),u=yield g("en")}document.getElementById("msg").innerText=m("webAuthnFallbackMsg"),document.getElementById("remember-label").innerText=m("rememberMe");const e=document.getElementById("webauthn-button");e.innerText=m("webAuthnAuthenticate"),e.onclick=p,document.getElementById("spinner").classList.add("d-none");const t=document.getElementById("content");t.classList.add("d-block"),t.classList.remove("d-none")}))))},68674:(e,t,n)=>{n.r(t)}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};n(48702)})();
//# sourceMappingURL=webauthn-fallback.af943a96dff6c6ea7a19.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
(()=>{"use strict";var e={7398:(e,t)=>{function n(e){if(Array.isArray(e)&&(e=Uint8Array.from(e)),e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array){let t="";const n=e.byteLength;for(let r=0;r<n;r++)t+=String.fromCharCode(e[r]);e=window.btoa(t)}if("string"!=typeof e)throw new Error("could not coerce to string");return e=e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=*$/g,"")}Object.defineProperty(t,"__esModule",{value:!0}),t.parseWebauthnJson=t.buildDataString=void 0,t.buildDataString=function(e){const t=e.response,r=new Uint8Array(t.authenticatorData),a=new Uint8Array(t.clientDataJSON),o=new Uint8Array(e.rawId),i=new Uint8Array(t.signature),c={id:e.id,rawId:n(o),type:e.type,extensions:e.getClientExtensionResults(),response:{authenticatorData:n(r),clientDataJson:n(a),signature:n(i)}};return JSON.stringify(c)},t.parseWebauthnJson=function(e){const t=JSON.parse(e),n=t.challenge.replace(/-/g,"+").replace(/_/g,"/");return t.challenge=Uint8Array.from(atob(n),(e=>e.charCodeAt(0))),t.allowCredentials.forEach((e=>{const t=e.id.replace(/\_/g,"/").replace(/\-/g,"+");e.id=Uint8Array.from(atob(t),(e=>e.charCodeAt(0)))})),t}},31848:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.b64Decode=t.getQsParam=void 0,t.getQsParam=function(e){const t=window.location.href;e=e.replace(/[\[\]]/g,"\\$&");const n=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null},t.b64Decode=function(e,t=!1){return t&&(e=e.replace(/ /g,"+")),decodeURIComponent(Array.prototype.map.call(atob(e),(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""))}},68674:(e,t,n)=>{n.r(t)}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};(()=>{const e=n(31848),t=n(7398);n(68674);const r="bitwarden://webauthn-callback";let a,o=!1,i=null,c=null,d=null,s=null,l=null,u=!1,p=!1,g=!1,f=null;function b(){if(o)return;if(s=e.getQsParam("parent"),!s)return void h("No parent.");s=decodeURIComponent(s),l=new URL(s).origin;"1"===e.getQsParam("v")?function(){const t=e.getQsParam("data");if(!t)return void h("No data.");a=e.b64Decode(t),i=e.getQsParam("headerText"),c=e.getQsParam("btnText"),d=e.getQsParam("btnReturnText")}():function(){let t=null;try{t=JSON.parse(e.b64Decode(e.getQsParam("data")))}catch(n){return void h("Cannot parse data.")}u=null!=t.callbackUri||!0===t.mobile,a=t.data,i=t.headerText,c=t.btnText,d=t.btnReturnText}(),o=!0}function m(){if(g=!1,"credentials"in navigator)if(b(),a){try{f=t.parseWebauthnJson(a)}catch(e){return void h("Cannot parse webauthn data.")}p=!1,u||-1!==navigator.userAgent.indexOf(" Safari/")&&-1===navigator.userAgent.indexOf("Chrome")||y()}else h("No data.");else h("WebAuthn is not supported in this browser.")}function y(){p||navigator.credentials.get({publicKey:f}).then(w).catch(h)}function h(e){u?(document.location.replace(r+"?error="+encodeURIComponent(e)),v(r+"?error="+encodeURIComponent(e))):parent.postMessage("error|"+e,s)}function w(e){if(g)return;const n=t.buildDataString(e);u?(document.location.replace(r+"?data="+encodeURIComponent(n)),v(r+"?data="+encodeURIComponent(n))):(parent.postMessage("success|"+n,s),g=!0)}function v(e){const t=document.getElementById("webauthn-button");t.innerText=decodeURI(d),t.onclick=()=>{document.location.replace(e)}}document.addEventListener("DOMContentLoaded",(()=>{var e;if(m(),window.addEventListener("message",(e=>{e.origin&&""!==e.origin&&e.origin===l&&("stop"===e.data?p=!0:"start"===e.data&&p&&m())}),!1),e="ready",u||parent.postMessage("info|"+e,s),b(),i){document.getElementById("webauthn-header").innerText=decodeURI(i)}if(c){const e=document.getElementById("webauthn-button");e.innerText=decodeURI(c),e.onclick=y}}))})()})();
//# sourceMappingURL=webauthn.b35ed6af52cfea7081b1.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
<!doctype html><html><head><meta charset="utf-8"/><meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no,width=device-width"/><title>Bitwarden Duo Connector</title><link href="connectors/duo.03d3232066d89682b1ee.css" rel="stylesheet"></head><body><script defer="defer" src="connectors/duo.6df903fad439e668a2d6.js"></script></body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0{display:none;}
.st1{display:inline;}
.st2{fill:#FFFFFF;}
</style>
<g id="Layer_1" class="st0">
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" class="st1">
<path d="M2560,2540V1190l38,19c231,118,489,307,683,500c181,180,265,309,321,488c21,66,21,87,25,881l4,812h-535h-536V2540z"/>
</g>
</g>
<g id="Layer_2">
<path d="M82.4,17.5c-9.2,1.6-13.3,3-21.8,7.1c-9.1,4.5-15,9-22.9,17.3C26.5,53.8,19.5,68.2,17,84.6c-0.7,4.7-1,59.8-0.8,175.9
l0.3,169l2.2,7c3.2,10.3,5.8,16,10.8,23.4c8.8,13.2,22.2,24.3,36.7,30c15.7,6.3,8.7,6.1,189.2,6.1c179.7,0,175,0.1,190-5.9
c23.9-9.6,40.8-28.9,48.3-55.1c1.7-6.2,1.8-14.5,1.8-179s-0.1-172.8-1.8-179c-4.4-15.5-11.1-27.2-21.4-37.2
c-10.6-10.5-21.8-17-36.2-21.1l-7.6-2.2L259,16.3C123.3,16.2,88.1,16.4,82.4,17.5z M82.4,17.5c-9.2,1.6-13.3,3-21.8,7.1
c-9.1,4.5-15,9-22.9,17.3C26.5,53.8,19.5,68.2,17,84.6c-0.7,4.7-1,59.8-0.8,175.9l0.3,169l2.2,7c3.2,10.3,5.8,16,10.8,23.4
c8.8,13.2,22.2,24.3,36.7,30c15.7,6.3,8.7,6.1,189.2,6.1c179.7,0,175,0.1,190-5.9c23.9-9.6,40.8-28.9,48.3-55.1
c1.7-6.2,1.8-14.5,1.8-179s-0.1-172.8-1.8-179c-4.4-15.5-11.1-27.2-21.4-37.2c-10.6-10.5-21.8-17-36.2-21.1l-7.6-2.2L259,16.3
C123.3,16.2,88.1,16.4,82.4,17.5z M402,79.2c1.8,1.3,4.1,3.9,5.1,5.8c1.8,3.3,1.9,7.9,1.9,100c-0.1,86.6-0.4,102.6-2.5,113.1
c-2.6,13.6-15,39.7-25.1,53.4c-8.1,10.9-30.2,33-43.9,44.1c-10.5,8.5-29.6,21.6-39,27c-1.1,0.6-6,3.4-10.8,6.2
c-14.6,8.6-27.2,14.2-31.6,14.2c-10.2,0-53-24.7-81.1-46.9c-14.3-11.2-38.5-35.9-46.2-47.1c-10.2-14.8-17.5-30-22.6-47.5l-2.6-9
l-0.4-101c-0.2-71.9,0-102.1,0.8-104.8c0.7-2.5,2.4-4.7,5.2-6.7l4.1-3H256h142.7L402,79.2z"/>
<path id="Identity" class="st2" d="M403.1,82.5c-3-3-6.6-4.6-10.7-4.6H118.4c-4.2,0-7.7,1.5-10.7,4.6c-3,3-4.6,6.5-4.6,10.7v182.7
c0,13.6,2.7,27.2,8,40.5c5.3,13.4,11.9,25.3,19.8,35.7c7.8,10.4,17.2,20.5,28.1,30.3c10.8,9.9,20.9,18,30.1,24.5
s18.8,12.6,28.8,18.4c10,5.8,17.1,9.7,21.3,11.8c4.2,2,7.6,3.7,10.1,4.7c1.9,1,4,1.5,6.2,1.5s4.3-0.5,6.2-1.5
c2.5-1.1,5.9-2.7,10.1-4.7c4.2-2,11.3-6,21.3-11.8c10-5.8,19.6-12,28.8-18.4c9.2-6.5,19.2-14.7,30.1-24.5
c10.8-9.9,20.2-19.9,28.1-30.3c7.8-10.4,14.4-22.3,19.7-35.7c5.3-13.4,8-26.9,8-40.5V93.2C407.6,89.1,406.1,85.6,403.1,82.5z
M367.7,277.6c0,66.1-112.4,123.1-112.4,123.1V117.1h112.4C367.7,117.1,367.7,211.5,367.7,277.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 100% 100%">
<text fill="%23FBFBFB" x="50%" y="50%" font-family="\'Open Sans\', \'Helvetica Neue\', Helvetica, Arial, sans-serif"
font-size="18" text-anchor="middle">
Loading...
</text>
</svg>

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 100% 100%">
<text fill="%23333333" x="50%" y="50%" font-family="\'Open Sans\', \'Helvetica Neue\', Helvetica, Arial, sans-serif"
font-size="18" text-anchor="middle">
Loading...
</text>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Some files were not shown because too many files have changed in this diff Show More