From bb9a1da3cea0eaec6b1cde6a4849ea74ef335228 Mon Sep 17 00:00:00 2001 From: qo-op Date: Mon, 30 Mar 2020 17:20:26 +0200 Subject: [PATCH] Create you ssb account from credentials ./zen/tools/make_G1SSB_secret.sh --- doc/WoT_certification_function.png | Bin 0 -> 4669 bytes zen/pkg/make_G1SSB_secret.tar.gz | Bin 0 -> 38691 bytes zen/tools/img2html.py | 166 ----------------------------- zen/tools/install.ssb-npm.sh | 0 zen/tools/key_create_dunikey.py | 28 +++++ zen/tools/make_G1SSB_secret.sh | 99 +++++++++++++++++ 6 files changed, 127 insertions(+), 166 deletions(-) create mode 100644 doc/WoT_certification_function.png create mode 100644 zen/pkg/make_G1SSB_secret.tar.gz delete mode 100644 zen/tools/img2html.py mode change 100644 => 100755 zen/tools/install.ssb-npm.sh create mode 100755 zen/tools/key_create_dunikey.py create mode 100755 zen/tools/make_G1SSB_secret.sh diff --git a/doc/WoT_certification_function.png b/doc/WoT_certification_function.png new file mode 100644 index 0000000000000000000000000000000000000000..2d2a24207987ab9f226776c853fcc21996f06218 GIT binary patch literal 4669 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⪚XIG!$i6)Yd9C*&as558-=6aoZ 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

jgt6;PvtnGy%yca_&}C*)S5+Nc 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 maxPixels: - factor = math.sqrt(maxPixels / float(oldX * oldY)) - newX = int(round(oldX * factor)) - newY = int(round(oldY * factor)) - image.thumbnail((newX, newY), Image.ANTIALIAS) - msg = '[This image is too large to comfortably handle, so it has been scaled down to %s%% of its original size.]

' % int(100.0 * newX / oldX); -else: - newX = oldX - newY = oldY - msg = '' - - -# Scan the image pixel by pixel and build the HTML table. -table = ''; -firstrow = True # Disable RLE for first row of each table segment (dodge Mozilla bug) -for y in range(newY): - row = ''; - for x in range(newX): - try: - (r, g, b) = image.getpixel((x, y)) - except: - # Some images throw a range error on some (transparent?) pixels. - (r, g, b) = (255, 255, 255) - if x == newX: - # Dummy run to clear the colspan buffer. - rgb = '' - else: - rgb = '%02x%02x%02x' % (r, g, b) - if x == 0: # Initialise the RLE (Run Length Encoding) - prev_rgb = rgb - span = 0 - span += 1 - if rgb != prev_rgb or firstrow: - if span == 1: # One pixel. - row += "" % prev_rgb - else: # A run of multiple pixels with the same colour. - row += "" % (prev_rgb, span) - span = 0 - prev_rgb = rgb - table += "%s\n" % row - - # Segment the table so that MSIE renders it in pieces instead of waiting till the end. - if y != 0 and (y == 5 or y % 15 == 0) and y < newY - 10: - table += "\n" - firstrow = True - else: - firstrow = False -newsize = int(round(len(table) / 1024)) - - -# We're done. Now print it all out (this is what takes the time). -print("Content-type: text/html\n") - -print(""" - - -img2html: {remoteurl} - - - -
-
Original Image -
{remoteurl} -
{oldX}x{oldY} -
{oldsize}KB -

-{msg} -

Text Image -
{newX}x{newY} -
{newsize}KB -
- -
-{table}
- -

-

Done - - -""".format(remoteurl=remoteurl, table=table, msg=msg, - oldsize=oldsize, newsize=newsize, - oldX=oldX, oldY=oldY, newX=newX, newY=newY)) diff --git a/zen/tools/install.ssb-npm.sh b/zen/tools/install.ssb-npm.sh old mode 100644 new mode 100755 diff --git a/zen/tools/key_create_dunikey.py b/zen/tools/key_create_dunikey.py new file mode 100755 index 0000000..af2b340 --- /dev/null +++ b/zen/tools/key_create_dunikey.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +# This Python script gets Duniter creddentials as arguments, and writes a PubSec file that should be compatible with Cesium and Silkaj(DuniterPy) clients. +# launch with : +# python3 key_create_dnuikey.py + +# depends on duniterpy 0.56 + +### Licence - WTFPL +# This script was written my Matograine, in the hope that it will be helpful. +# Do What The Fuck you like with it. There is : +# * no guarantee that this will work +# * no support of any kind +# +# If this is helpful, please consider making a donation to the developper's pubkey : 78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8 +# Have fun + +from sys import argv +from duniterpy.key import SigningKey + +# path to save to +path = "./.secret.dunikey" + +key = SigningKey.from_credentials(argv[1], argv[2], None) +key.save_pubsec_file(path) +print( + "G1 Wallet: ", + key.pubkey, +) diff --git a/zen/tools/make_G1SSB_secret.sh b/zen/tools/make_G1SSB_secret.sh new file mode 100755 index 0000000..0a45125 --- /dev/null +++ b/zen/tools/make_G1SSB_secret.sh @@ -0,0 +1,99 @@ +#!/bin/bash +######################################################################## +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" +echo ' +######################################################################## +# \\/// +# qo-op +############# '$MY_PATH/$ME' +######################################################################## +# Make a G1SSB Account +######################################################################## +' +if [[ -d ~/.ssb ]]; then + echo "ScuttelButt is already installed..." + echo "Do you want to remove ~/.ssb ? (y)/n" + read isitok + if [[ "$isitok" == "y" ]]; then rm -Rf ~/.ssb; else echo "You must remove '~/.ssb' before running $ME"; exit 1; fi +fi + +mkdir -p ~/.ssb +echo "WELCOME CREATING YOUR G1 SSB ACCOUNT !!!" +echo ' + __ __ __ _ +/__ /| (_ (_ |_) +\_| | __) __) |_) + +CHOOSE YOU LOGIN or LEAVE BLANK & HIT ENTER FOR AUTO GENERATION +' +read salt +[[ $salt != "" ]] && echo "CHOOSE PASSWORD?" && read pepper && [[ $pepper == "" ]] && exit 1 + +if [[ "$salt" == "" && "$pepper" == "" ]]; then + echo ' +._ _ ._ _ ._ _ _ ._ o _ +| | | | | (/_ | | | (_) | | | (_ + +passphrase generator...' + + # GENERATE MNEMONIC KEY: 9 MOTS + # LOGIN (=SALT) 6 WORDS + salt="$($MY_PATH/diceware.sh 6)" + # PASS (=PEPPER) 3 WORDS + pepper="$($MY_PATH/diceware.sh 3)" + + echo "........." + echo "REMEMBER YOUR CREDENTIALS !!! +login (salt) : $salt +password : $pepper" + +fi + +# CREATE ~/.ssb/secret.dunikey +python3 $MY_PATH/key_create_dunikey.py "$salt" "$pepper" +mv $MY_PATH/.secret.dunikey ~/.ssb/secret.dunikey + +# CREATE SSB secret +pub=$(cat ~/.ssb/secret.dunikey | grep "pub" | cut -d ' ' -f 2) +priv=$(cat ~/.ssb/secret.dunikey | grep "sec" | cut -d ' ' -f 2) +ssbpub=$(echo $pub | base58 -d | base64) +ssbpriv=$(echo $priv | base58 -d | base64) + +cat > ~/.ssb/secret <