Skip to content

Instantly share code, notes, and snippets.

View mrinalwadhwa's full-sized avatar
🦀

Mrinal Wadhwa mrinalwadhwa

🦀
View GitHub Profile
@mrinalwadhwa
mrinalwadhwa / ecdh.py
Created March 5, 2020 20:47
Elliptic Curve Diffie-Hellman key exchange from scratch
#!/usr/bin/env python3
# The below code is an attemt to understand Elliptic Curve Cryptography
# by implementing Elliptic Curve Diffie-Hellman key exchange from scratch.
# DON'T USE THIS CODE IN YOUR APP!!
# It is not safe and is intended only as a learning tool.
import secrets
@mrinalwadhwa
mrinalwadhwa / GetBinaryState (0 is OFF, 1 is ON)
Last active October 16, 2021 20:51
curl wemo connected switch
curl -0 -v -X POST http://wemo:49153/upnp/control/basicevent1 -H 'SOAPACTION: "urn:Belkin:service:basicevent:1#GetBinaryState"' -H 'Content-Type: text/xml; charset=utf-8' -d @- << EOF
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetBinaryState xmlns:u="urn:Belkin:service:basicevent:1" />
</s:Body>
</s:Envelope>
EOF

Keybase proof

I hereby claim:

  • I am mrinalwadhwa on github.
  • I am mrinalwadhwa (https://keybase.io/mrinalwadhwa) on keybase.
  • I have a public key ASCPMxSM9YAbqvODLF8K_n54VAt7bdiQJGlCyriSdn0tQAo

To claim this, I am signing this object:

@mrinalwadhwa
mrinalwadhwa / utc_iso8601_milli.rb
Last active October 21, 2019 11:37
Ruby: Convert to UTC time in ISO 8601 format with millisecond precision, padding of 3.
def utc_iso8601_milli(time)
time.utc.strftime '%FT%T.%LZ'
end
utc_iso8601_milli Time.now
# => "2016-09-02T07:06:18.134Z"
utc_iso8601_milli Time.new(2002, 10, 31, 2, 2, 2, "+05:00")
# => "2002-10-30T21:02:02.000Z"
@mrinalwadhwa
mrinalwadhwa / usage.sh
Created August 3, 2016 17:36
Extract and display block of usage info
#!/usr/bin/env bash
##
## Usage: usage [command|path]
## Assuming that a command script file starts with a block of usage info
## where each line in the block starts with two '##' characters. This script
## extracts and displays that block of usage info.
##
## Example:
## Given a file a_command with the following contents:
##
@mrinalwadhwa
mrinalwadhwa / tcp_ports_listening.sh
Created August 3, 2016 17:35
Listening TCP ports
#!/usr/bin/env bash
sudo lsof -i -P | grep -i "listen"
# REFERENCES
# http://apple.stackexchange.com/a/117648
@mrinalwadhwa
mrinalwadhwa / ip.sh
Created August 3, 2016 17:33
Display external IP using OpenDNS.
#!/usr/bin/env bash
##
## Usage: ip
## Display external IP using OpenDNS.
##
dig +short myip.opendns.com @resolver1.opendns.com
# REFERENCES
# http://www.commandlinefu.com/commands/view/5253/get-your-outgoing-ip-address
@mrinalwadhwa
mrinalwadhwa / afk-osx.sh
Created August 3, 2016 17:30
Lock Screen on MacOS
#!/usr/bin/env bash
##
## Usage: afk
## Lock Screen on MacOS
##
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
@mrinalwadhwa
mrinalwadhwa / random-string.sh
Created August 3, 2016 17:28
generate random strings
#!/usr/bin/env bash
##
## Usage: random-string [length] [lines] [pattern]
## Generates a random string using /dev/urandom
##
## Default:
## length: 32
## lines: 1
## pattern: 'a-zA-Z0-9'
##
function prompt_color(){
case $# in
3) echo -en "\[\033[$2\]\[\033[$3\]\[$1\033[0m\]";;
2) echo -en "\[\033[$2\]$1\[\033[0m\]";;
1) echo -en "$1";;
*) echo -en "";;
esac
}
function git_branch(){