Skip to content

Instantly share code, notes, and snippets.

@jokecamp
jokecamp / gist:2c1a67b8f277797ecdb3
Last active January 31, 2024 01:48
Powershell HMAC SHA 256 Example
# Powershell HMAC SHA 256
$message = 'Message'
$secret = 'secret'
$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Text.Encoding]::ASCII.GetBytes($secret)
$signature = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($message))
$signature = [Convert]::ToBase64String($signature)
@jokecamp
jokecamp / example.dart
Created January 17, 2014 17:24
Dart HMAC SHA 256 Example code
import 'dart:html';
import 'dart:convert';
import 'package:crypto/crypto.dart';
void main() {
String secret = 'secret';
String message = 'Message';
List<int> secretBytes = UTF8.encode('secret');
using ServiceStack.WebHost.Endpoints;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Security;
using ServiceStack.Common.Web;
using ServiceStack.Logging;
using ServiceStack.ServiceHost;
using ServiceStack.ServiceInterface;
@jokecamp
jokecamp / package.json
Last active July 6, 2020 13:50
Demo for Passport.js authentication in a Node.js Express application
{
"name": "securehelloworld",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
class Timer {
readonly start = performance.now();
constructor(private readonly name: string) {}
stop() {
const time = performance.now() - this.start;
console.log('Timer:', this.name, 'finished in', Math.round(time), 'ms');
}
}
<md-input-container class="admin-form">
<input md-input placeholder="Block Title" nfNoSpaces [(ngModel)]="block.title" id="block-{{ block.id }}-input-name" name="title"
#title="ngModel">
<md-hint [ngStyle]="{'color': 'red'}" align="start" *ngIf="!title.valid && !title.pristine">Title is required.</md-hint>
</md-input-container>
Be sure to include ref to directive in module declarations array.
@jokecamp
jokecamp / monoserver
Created August 31, 2013 16:17
Linux startup script for fastcgi-mono-server4
#!/bin/sh
### BEGIN INIT INFO
# http://yojimbo87.github.io/2010/03/14/mono-startup-script.html
# Provides: monoserve.sh
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start fastcgi mono server with hosts
function getVersion()
{
$tag = iex "git describe --long --tags --always"
$a = [regex]"v\d+\.\d+\.\d+\-\d+"
$b = $a.Match($tag)
$b = $b.Captures[0].value
$b = $b -replace '-', '.'
$b = $b -replace 'v', ''
Write-Host "Version found: $b"
@jokecamp
jokecamp / RequestFilter
Created December 13, 2013 21:11
ServiceStack v3 Partial Updates
this.RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
var hasFilter = requestDto as IAllowPartialUpdate;
if (hasFilter != null)
{
if (httpReq.QueryString["fields"] != null)
{
// store for later
httpReq.Items.Add("Patch_Fields", httpReq.QueryString["fields"].Split(new[] {','}));
}
@jokecamp
jokecamp / gist:7529013
Created November 18, 2013 14:50
Various ways of sanitizing XML input
/// http://seattlesoftware.wordpress.com/2008/09/11/hexadecimal-value-0-is-an-invalid-character/
/// http://stackoverflow.com/questions/157646/best-way-to-encode-text-data-for-xml/732135#732135
public string Clean(string text)
{
return new string(text.Where(XmlConvert.IsXmlChar).ToArray());
}
public static string CleanInvalidXmlChars(string text)
{