Skip to content

Instantly share code, notes, and snippets.

View piroor's full-sized avatar

YUKI "Piro" Hiroshi piroor

View GitHub Profile
@piroor
piroor / aes-gcm-encryption.js
Last active August 16, 2022 08:02
Example of AES-GCM encryptor with passphrase, based on Web Crypto API
async function getKey(passphrase, salt = null) {
passphrase = (new TextEncoder()).encode(passphrase);
let digest = await crypto.subtle.digest({ name: 'SHA-256' }, passphrase);
let keyMaterial = await crypto.subtle.importKey(
'raw',
digest,
{ name: 'PBKDF2' },
false,
['deriveKey']
);
@piroor
piroor / array-uniq-benchmark.js
Last active February 18, 2019 03:29
Benchmark of "uniq" for Array in JavaScript
// License: MIT
// Original Author: YUKI "Piro" Hiroshi <yuki@clear-code.com>
// confirmed at Firefox 64
async function test(times, length) {
function uniqByIndexOf(array) {
const uniquedArray = [];
for (const elem of array) {
if (uniquedArray.indexOf(elem) < 0)
@piroor
piroor / prepare.js
Last active December 1, 2018 05:21
Preparation script for running of tests at https://hg.mozilla.org/mozilla-central/rev/cd420001c8ea#l5.145
/*
Usage:
1. Install something addon with "tabs" permission.
2. Go to "about:debugging" and open a debugger for the addon.
3. Go to the console.
4. Run.
*/
(async (global) => {
const windowId = (await browser.windows.create({})).id;
@piroor
piroor / enctyptor.js
Last active February 8, 2019 09:34
Simple String Encryptor (example)
/*
Simple String Encryptor with common key cryptosystem (example)
Usage:
// The first argument of the constructor is the algorithm.
// If you don't specify any algorithm, AES-CTR 256bit is used.
const encryptor = new Encryptor({ name: 'AES-CTR', length: 256 });
const counter = crypto.getRandomValues(new Uint8Array(16));
const encrypted = await encryptor.encryptString('Hello world!', { counter });
@piroor
piroor / peco-commands.sh
Last active November 8, 2018 01:02
Predefined commands based on peco (on Bash)
# Usage:
# 1. Download latest binary of peco from: https://github.com/peco/peco/releases
# 2. Extract "peco" from the downloaded archive and put it to somewhere listed in $PATH.
# 3. Put this file as "~/peco-commands.sh".
# 4. Add a line "source ~/peco-commands.sh".
# 5. Exit and login again.
# from http://bio-eco-evo.hatenablog.com/entry/2017/04/30/044703
peco-cd() {
local sw="1"
@piroor
piroor / autoconfig.cfg
Created September 27, 2018 05:02
Register security exception automatically when a cert error page is initially shown, on Firefox ESR60
// the first line is always ignored by Firefox.
const autoAcceptExceptionFor = (host, port = 443) => {
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
const exceptionURL = port == 443 ? `https://${host}` : `https://${host}:${port}`;
const { Services } = Cu.import('resource://gre/modules/Services.jsm', {});
const observer = {
observe(aSubject, aTopic, aData) {
switch (aTopic) {
@piroor
piroor / autoconfig.cfg
Created September 26, 2018 09:34
Register security exception automatically on the startup of Firefox ESR60
// the first line is always ignored by Firefox.
const autoAcceptExceptionFor = (host, port = 443) => {
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
const exceptionURL = port == 443 ? `https://${host}` : `https://${host}:${port}`;
const { Services } = Cu.import('resource://gre/modules/Services.jsm', {});
const observer = {
observe(aSubject, aTopic, aData) {
switch (aTopic) {
@piroor
piroor / toc.js
Last active November 3, 2022 17:59
Generate Table of Contents for GitHub Wiki Pages
// How to use:
// 1. Go to a page of GitHub Wiki with Firefox.
// 2. Copy this script to the clipboard.
// 3. Hit Ctrl-Shift-K to open Web Console.
// 4. Hit Ctrl-Shift-V to paste this script.
// 5. Hit Enter to run script.
// 6. If you are not in edit mode, click the "Copy ToC" button shown in the page.
// Then ToC is copied to the clipboard, so paste the TOC from the clipboard.
var container = document.querySelector('.markdown-body');
@piroor
piroor / get-ie-path.go
Last active August 1, 2017 09:25
Golang study
package main
import (
"fmt"
"golang.org/x/sys/windows/registry"
)
func main() {
fmt.Printf(GetIEPath())
}
@piroor
piroor / urn-link.md
Last active May 12, 2016 04:52
URN link test