mirror of
https://github.com/tornadocash/trusted-setup-server.git
synced 2024-11-21 09:26:54 +01:00
get hash from webassm
This commit is contained in:
parent
9eccbd61c9
commit
c88dc70552
Binary file not shown.
@ -82,6 +82,12 @@ import { mapGetters, mapActions } from 'vuex'
|
||||
import Cloak from '@/components/Cloak'
|
||||
import Form from '@/components/Form'
|
||||
const timeout = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
|
||||
function buf2hex(buffer) {
|
||||
// buffer is an ArrayBuffer
|
||||
return Array.prototype.map
|
||||
.call(new Uint8Array(buffer), (x) => ('00' + x.toString(16)).slice(-2))
|
||||
.join('')
|
||||
}
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@ -183,12 +189,12 @@ export default {
|
||||
let msgBuffer = new TextEncoder('utf-8').encode(userInput)
|
||||
let hashBuffer = await window.crypto.subtle.digest('SHA-256', msgBuffer)
|
||||
const entropyFromUser = new Uint8Array(hashBuffer)
|
||||
console.log('entropyFromUser', entropyFromUser.toString())
|
||||
// console.log('entropyFromUser', entropyFromUser.toString())
|
||||
|
||||
msgBuffer = window.crypto.getRandomValues(new Uint8Array(1024))
|
||||
hashBuffer = await window.crypto.subtle.digest('SHA-256', msgBuffer)
|
||||
const entropyFromBrowser = new Uint8Array(hashBuffer)
|
||||
console.log('entropyFromBrowser', entropyFromBrowser.toString())
|
||||
// console.log('entropyFromBrowser', entropyFromBrowser.toString())
|
||||
|
||||
// suffle the browser and user random
|
||||
const entropy = new Uint8Array(entropyFromBrowser.length)
|
||||
@ -196,14 +202,19 @@ export default {
|
||||
entropy[i] = entropyFromBrowser[i] + entropyFromUser[i]
|
||||
}
|
||||
|
||||
console.log('entropy', entropy)
|
||||
// console.log('entropy', entropy)
|
||||
await this.sleep(100) // so browser can render the messages
|
||||
const result = contribute(data, entropy)
|
||||
console.log('Updated params', result)
|
||||
const hash = '0x' + buf2hex(result.slice(0, 64))
|
||||
const contribution = result.slice(64)
|
||||
|
||||
console.log('hash', hash)
|
||||
console.log('contribution', contribution)
|
||||
|
||||
this.$root.$emit('enableLoading', 'Uploading and verifying your contribution')
|
||||
const formData = new FormData()
|
||||
formData.append('response', new Blob([result], { type: 'application/octet-stream' }))
|
||||
formData.append('response', new Blob([contribution], { type: 'application/octet-stream' }))
|
||||
if (this.contributionType !== 'anonymous') {
|
||||
formData.append('name', this.userName)
|
||||
formData.append('company', this.userCompany)
|
||||
@ -217,7 +228,7 @@ export default {
|
||||
this.$store.commit('user/SET_CONTRIBUTION_INDEX', responseData.contributionIndex)
|
||||
this.status.msg = 'Your contribution is verified and recorded.'
|
||||
this.status.type = 'is-success'
|
||||
this.contributionHash = responseData.hash
|
||||
this.contributionHash = hash
|
||||
if (this.contributionType === 'anonymous') {
|
||||
this.authorizeLink = `${window.location.origin}/authorize-contribution?token=${responseData.token}`
|
||||
}
|
||||
|
@ -84,12 +84,7 @@ router.post('/response', upload.single('response'), async (req, res) => {
|
||||
token = crypto.randomBytes(32).toString('hex')
|
||||
}
|
||||
|
||||
const contribution = await fs.readFile(`/tmp/tornado/${req.file.filename}`)
|
||||
const blake2Instance = blake2.createHash('blake2b')
|
||||
blake2Instance.update(contribution)
|
||||
const hash = '0x' + blake2Instance.digest('hex')
|
||||
|
||||
await Contribution.create({ name, company, handle, socialType, token, hash })
|
||||
await Contribution.create({ name, company, handle, socialType, token })
|
||||
|
||||
console.log('Contribution is correct, uploading to storage')
|
||||
if (process.env.DISABLE_S3 !== 'true') {
|
||||
@ -103,8 +98,8 @@ router.post('/response', upload.single('response'), async (req, res) => {
|
||||
`./server/snark_files/response_${contributionIndex}`
|
||||
)
|
||||
|
||||
console.log('Finished. The hash of the contribution is', hash)
|
||||
res.json({ contributionIndex, token, hash })
|
||||
console.log('Contribution finished.')
|
||||
res.json({ contributionIndex, token })
|
||||
} catch (e) {
|
||||
console.error('Got error during save', e)
|
||||
res.status(503).send(e.toString())
|
||||
|
@ -24,7 +24,6 @@ module.exports = (sequelize, DataTypes) => {
|
||||
company: DataTypes.STRING,
|
||||
handle: DataTypes.STRING,
|
||||
socialType: DataTypes.STRING,
|
||||
hash: DataTypes.STRING,
|
||||
attestation: DataTypes.STRING
|
||||
},
|
||||
{
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user