first commit
This commit is contained in:
22
frontend/src/App.vue
Normal file
22
frontend/src/App.vue
Normal file
@ -0,0 +1,22 @@
|
||||
<script setup>
|
||||
import DecryptView from './components/DecryptView.vue'
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<img id="logo" alt="Yourgold" src="./assets/images/logo-light.svg"/>
|
||||
<DecryptView/>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
#logo {
|
||||
display: block;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
margin: auto;
|
||||
padding: 5% 0 0;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-origin: content-box;
|
||||
}
|
||||
</style>
|
93
frontend/src/assets/fonts/OFL.txt
Normal file
93
frontend/src/assets/fonts/OFL.txt
Normal file
@ -0,0 +1,93 @@
|
||||
Copyright 2016 The Nunito Project Authors (contact@sansoxygen.com),
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
frontend/src/assets/fonts/nunito-v16-latin-regular.woff2
Normal file
BIN
frontend/src/assets/fonts/nunito-v16-latin-regular.woff2
Normal file
Binary file not shown.
27
frontend/src/assets/images/logo-light.svg
Normal file
27
frontend/src/assets/images/logo-light.svg
Normal file
@ -0,0 +1,27 @@
|
||||
<svg width="234" height="166" viewBox="0 0 234 166" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="mask0_16_1819" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="234" height="166">
|
||||
<path d="M233.423 0H0V165.122H233.423V0Z" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_16_1819)">
|
||||
<path d="M37.7097 91.5428L34.3839 92.2893C31.292 71.9932 35.6017 50.4373 49.1864 32.2407C36.9602 51.7436 33.9622 72.5997 37.7097 91.5428Z" fill="white"/>
|
||||
<path d="M39.7711 99.6611C41.4106 104.933 43.5654 110.019 46.2356 114.825L42.4411 117.671C39.7711 112.259 37.6631 106.613 36.1641 100.781L39.7711 99.6611Z" fill="white"/>
|
||||
<path d="M184.985 128.262C181.237 133.441 176.929 138.2 172.104 142.399C162.173 151.125 150.274 157.657 137.486 161.063C137.158 161.156 136.783 161.249 136.455 161.343C136.081 161.436 135.706 161.529 135.378 161.623C131.584 162.556 127.743 163.162 123.854 163.536C123.714 163.536 123.62 163.582 123.48 163.582C116.968 164.142 110.363 163.862 103.759 162.696C79.3061 159.196 59.8191 145.246 47.5928 126.676L52.0898 123.97C71.5299 150.378 106.569 164.982 144.466 151.031C157.348 146.459 168.964 138.48 178.006 128.262H184.985Z" fill="white"/>
|
||||
<path d="M199.461 90.7961H195.244C196.088 84.6372 196.79 77.8252 196.65 73.486C195.713 48.1508 174.118 10.4979 139.922 1.02637C168.262 8.72491 190.232 32.5671 197.54 60.3751C200.116 70.2199 200.866 80.5312 199.461 90.7961Z" fill="white"/>
|
||||
<path d="M34.477 101.294C36.0228 107.313 38.2713 113.145 41.1289 118.651L40.473 119.164C37.6156 113.565 35.367 107.639 33.8213 101.527L34.477 101.294Z" fill="white"/>
|
||||
<path d="M32.7438 92.6626L32.1347 92.8024C30.5889 81.9778 31.1041 70.8732 33.821 60.2819C36.4912 49.5972 41.3629 39.4259 47.9211 30.6075C54.4792 21.7426 62.8174 14.184 72.2799 8.53838C78.4164 4.85241 84.9746 2.00628 91.8605 0C91.6731 0.0466579 91.4857 0.139974 91.2985 0.186631C84.6466 2.19292 78.2758 5.03905 72.3267 8.63171C62.8643 14.324 54.5729 21.8825 48.0616 30.7475C41.5034 39.6125 36.7723 49.784 34.1958 60.422C31.5726 70.9199 31.1041 81.9311 32.7438 92.6626Z" fill="white"/>
|
||||
<path d="M185.923 128.262C185.361 129.055 184.799 129.895 184.237 130.642C177.631 139.553 169.293 147.205 159.784 152.944C150.275 158.683 139.595 162.509 128.633 164.189C117.625 165.822 106.289 165.309 95.5147 162.649C84.7406 159.99 74.4818 155.137 65.5346 148.558C57.7586 142.866 51.013 135.774 45.626 127.796L46.3756 127.329C51.7625 135.168 58.4612 142.073 66.1437 147.672C74.997 154.157 85.1154 158.87 95.7488 161.483C104.79 163.722 114.205 164.375 123.434 163.536C123.574 163.536 123.668 163.489 123.808 163.489C125.354 163.349 126.853 163.162 128.399 162.929C130.741 162.602 133.037 162.136 135.332 161.623C135.707 161.529 136.081 161.436 136.409 161.343C136.737 161.249 137.112 161.156 137.44 161.063C145.075 159.056 152.383 155.977 159.129 151.918C163.719 149.165 168.029 145.946 172.011 142.4C176.179 138.667 179.974 134.514 183.3 130.035C183.722 129.429 184.144 128.869 184.565 128.262H185.923Z" fill="white"/>
|
||||
<path d="M200.023 90.7963H199.226C200.21 83.2377 200.116 75.5392 198.993 67.9805C198.617 65.4144 198.102 62.8948 197.494 60.4219C195.526 52.2568 192.293 44.4183 187.937 37.1864C182.27 27.7616 174.727 19.4564 165.874 12.9243C165.733 12.7843 165.546 12.691 165.358 12.5511C165.452 12.5511 165.546 12.5511 165.64 12.5044C165.733 12.5977 165.874 12.691 165.967 12.7377C174.868 19.2699 182.503 27.5283 188.265 36.9531C194.027 46.3779 197.869 56.9226 199.554 67.8405C200.772 75.4459 200.913 83.1911 200.023 90.7963Z" fill="white"/>
|
||||
<path d="M5.38704 94.4819L10.7272 105.68L15.6927 94.4819H21.0797L13.1163 111.559V125.51H8.10398V111.465L0 94.4819H5.38704Z" fill="white"/>
|
||||
<path d="M55.4631 109.926C55.4631 114.358 53.4957 118.744 50.1698 121.87C47.1249 124.763 43.2368 126.256 38.7867 126.256C29.7926 126.256 22.7661 119.117 22.7661 109.833C22.7661 105.82 24.4524 101.668 27.4037 98.4947C30.2611 95.4153 34.5239 93.5957 38.974 93.5957C48.0149 93.5957 55.4631 100.968 55.4631 109.926ZM28.2 109.926C28.2 113.612 29.418 116.458 31.9006 118.604C33.9149 120.377 36.5382 121.357 39.0677 121.357C45.2512 121.357 49.9824 116.411 49.9824 110.019C49.9824 103.627 45.2044 98.4947 39.1145 98.4947C33.0249 98.4947 28.2 103.44 28.2 109.926Z" fill="white"/>
|
||||
<path d="M65.7219 94.4819V115.151C65.7219 117.298 65.8625 118.278 66.284 119.071C67.0334 120.61 68.5325 121.45 70.4062 121.45C72.4673 121.45 74.0132 120.47 74.7159 118.697C75.1844 117.531 75.2312 117.018 75.2312 113.985V94.4819H80.2435V114.591C80.2435 117.671 80.0092 119.304 79.3066 120.75C77.7607 124.11 74.4347 126.163 70.5468 126.163C66.6588 126.163 63.1923 123.97 61.6465 120.517C60.9438 119.024 60.7563 117.624 60.7563 114.498V94.4819H65.7219Z" fill="white"/>
|
||||
<path d="M93.6409 94.4819C96.5921 94.4819 98.6532 94.902 100.293 95.8351C103.15 97.4214 104.79 100.268 104.79 103.627C104.79 108.013 102.12 111.465 97.6226 113.052L104.93 122.99L100.855 125.743L91.6734 113.238V125.463H86.6143V94.4819H93.6409ZM93.6409 108.713C95.3273 108.713 95.8426 108.666 96.5452 108.386C98.3252 107.686 99.4027 105.866 99.4027 103.58C99.4027 100.734 97.5289 99.0545 94.3435 99.0545H91.7202V108.666H93.6409V108.713Z" fill="white"/>
|
||||
<path d="M149.384 108.013V122.15C146.199 124.623 142.639 125.883 138.798 125.883C129.897 125.883 122.871 118.837 122.871 109.879C122.871 100.921 129.804 94.062 138.657 94.062C141.515 94.062 144.559 94.8553 146.855 96.1617L145.871 101.061C143.857 99.801 140.671 98.9145 138.142 98.9145C132.661 98.9145 128.351 104 128.351 110.252C128.351 116.504 132.848 121.357 138.657 121.357C140.999 121.357 143.341 120.75 144.466 119.817V112.539H136.783L137.767 108.013H149.384Z" fill="white"/>
|
||||
<path d="M186.953 109.926C186.953 114.358 184.985 118.744 181.659 121.87C178.615 124.763 174.727 126.256 170.276 126.256C161.283 126.256 154.256 119.117 154.256 109.833C154.256 105.82 155.943 101.668 158.894 98.4947C161.751 95.4153 166.014 93.5957 170.465 93.5957C179.505 93.5957 186.953 100.968 186.953 109.926ZM159.69 109.926C159.69 113.612 160.908 116.458 163.391 118.604C165.405 120.377 168.029 121.357 170.558 121.357C176.741 121.357 181.472 116.411 181.472 110.019C181.472 103.627 176.694 98.4947 170.605 98.4947C164.515 98.4947 159.69 103.44 159.69 109.926Z" fill="white"/>
|
||||
<path d="M197.494 94.4819V120.937H206.347V125.51H192.48V94.5287H197.494V94.4819Z" fill="white"/>
|
||||
<path d="M217.637 94.5757C220.353 94.5757 222.367 94.9489 224.381 95.882C229.816 98.3548 233.423 104.094 233.423 110.299C233.423 116.505 229.581 122.43 223.726 124.483C221.618 125.23 219.791 125.51 217.262 125.51H210.704V94.6222H217.637V94.5757ZM216.793 120.844C218.479 120.844 219.604 120.704 220.775 120.331C225.225 118.978 228.176 114.872 228.176 110.159C228.176 105.074 224.803 100.781 219.978 99.568C218.854 99.2881 218.059 99.1948 216.418 99.1948H215.716L215.669 120.844H216.793Z" fill="white"/>
|
||||
<path d="M147.464 13.3906H130.132V74.3257H147.464V13.3906Z" fill="#E52B29"/>
|
||||
<path d="M124.463 17.917H107.131V74.3263H124.463V17.917Z" fill="#F28F50"/>
|
||||
<path d="M101.463 25.8018H84.1309V74.3259H101.463V25.8018Z" fill="#FEDE5B"/>
|
||||
<path d="M171.354 83.7974H60.1938V85.757H171.354V83.7974Z" fill="white"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.0 KiB |
93
frontend/src/components/DecryptView.vue
Normal file
93
frontend/src/components/DecryptView.vue
Normal file
@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<div class="p-6 space-y-6 max-w-4/5 mx-auto">
|
||||
<h2 class="text-xl font-bold mb-12 m-6">Yourgold verification data decryptor</h2>
|
||||
|
||||
<div class="space-y-4">
|
||||
<div class="flex justify-between items-center">
|
||||
<label class="text-sm ">Encrypted Zip File:</label>
|
||||
<button
|
||||
@click="pickEncryptedFile"
|
||||
class="bg-gray-200 px-4 py-2 rounded-md w-full sm:w-1/2 text-left overflow-hidden truncate text-black">
|
||||
{{ encryptedFile || 'Choose File' }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<label class="text-sm ">Private Key File:</label>
|
||||
<button
|
||||
@click="pickPrivateKeyFile"
|
||||
class="bg-gray-200 px-4 py-2 rounded-md w-full sm:w-1/2 text-left overflow-hidden truncate text-black">
|
||||
{{ privateKeyFile || 'Choose File' }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<label class="text-sm">Output Directory:</label>
|
||||
<button
|
||||
@click="pickOutputDir"
|
||||
class="bg-gray-200 px-4 py-2 rounded-md w-full sm:w-1/2 text-left overflow-hidden truncate text-black">
|
||||
{{ outputDir || 'Choose Folder' }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<button
|
||||
@click="decrypt"
|
||||
class="bg-blue-500 text-white px-6 py-3 rounded-md w-full sm:w-1/3 max-w-xs mt-6">
|
||||
Decrypt
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<p v-if="message" class="mt-4 text-green-600">{{ message }}</p>
|
||||
<p v-if="error" class="mt-4 text-red-600">{{ error }}</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { DecryptHybridZip, SelectPrivateKeyFile, SelectEncryptedFile, SelectOutputDirectory} from '../../wailsjs/go/backend/Decryptor'
|
||||
|
||||
const encryptedFile = ref(null)
|
||||
const privateKeyFile = ref(null)
|
||||
const outputDir = ref('')
|
||||
const message = ref('')
|
||||
const error = ref('')
|
||||
|
||||
const pickPrivateKeyFile = async () => {
|
||||
const result = await SelectPrivateKeyFile()
|
||||
if (result) privateKeyFile.value = result
|
||||
}
|
||||
|
||||
const pickEncryptedFile = async () => {
|
||||
const result = await SelectEncryptedFile()
|
||||
if (result) encryptedFile.value = result
|
||||
console.log(encryptedFile.value)
|
||||
}
|
||||
|
||||
const pickOutputDir = async () => {
|
||||
const result = await SelectOutputDirectory()
|
||||
if (result) outputDir.value = result
|
||||
}
|
||||
|
||||
const decrypt = async () => {
|
||||
message.value = ''
|
||||
error.value = ''
|
||||
try {
|
||||
console.log(encryptedFile)
|
||||
if (!encryptedFile.value || !privateKeyFile.value || !outputDir.value) {
|
||||
error.value = 'Please select all required files and folder.'
|
||||
return
|
||||
}
|
||||
|
||||
await DecryptHybridZip(
|
||||
encryptedFile.value,
|
||||
privateKeyFile.value,
|
||||
outputDir.value
|
||||
)
|
||||
message.value = 'Decryption complete!'
|
||||
} catch (err) {
|
||||
error.value = 'Decryption failed: ' + err
|
||||
}
|
||||
}
|
||||
</script>
|
5
frontend/src/main.js
Normal file
5
frontend/src/main.js
Normal file
@ -0,0 +1,5 @@
|
||||
import {createApp} from 'vue'
|
||||
import App from './App.vue'
|
||||
import './style.css';
|
||||
|
||||
createApp(App).mount('#app')
|
28
frontend/src/style.css
Normal file
28
frontend/src/style.css
Normal file
@ -0,0 +1,28 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
html {
|
||||
background-color: rgba(27, 38, 54, 1);
|
||||
text-align: center;
|
||||
color: white;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
color: white;
|
||||
font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
||||
"Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Nunito";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(""),
|
||||
url("assets/fonts/nunito-v16-latin-regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
#app {
|
||||
height: 100vh;
|
||||
text-align: center;
|
||||
}
|
Reference in New Issue
Block a user