An implementation of the Information Concealment Engine cipher in Go

ice-cipher-go

An implementation of the Information Concealment Engine cipher in Go.

Takes a 64 bit (8 byte) key, 64 bits of data and returns the encrypted/decrypted 64 bit result.

Ice Ice Baby

ice ice baby

Go Get

go get github.com/markus-wa/ice-cipher-go/pkg/ice

Usage

example from example/main.go

package main

import (
    "fmt"

    "github.com/markus-wa/ice-cipher-go/pkg/ice"
)

func main() {
	k := ice.NewKey(1, []byte{0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, 0x89})
	toEncrypt := []byte{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}

	fmt.Println("to encrypt:", toEncrypt)
    
	// encrypt 8 bytes
	encrypted := make([]byte, 8)
    k.Encrypt(toEncrypt, encrypted)
    
	fmt.Println("encrypted:", encrypted)
    
	// decrypt 8 bytes
	decrypted := make([]byte, 8)
	k.Decrypt(encrypted, decrypted)
    
	fmt.Println("decrypted:", decrypted)
	
	// utility function to decrypt larger arrays
    decryptedTwice := k.DecryptAll(append(encrypted, encrypted...))

	fmt.Println("decrypted twice:", decryptedTwice)
}

run via go run example/main.go

prints

to encrypt: [17 34 51 68 85 102 119 136]
encrypted: [88 76 140 254 103 42 211 107]
decrypted: [17 34 51 68 85 102 119 136]
decrypted twice: [17 34 51 68 85 102 119 136 17 34 51 68 85 102 119 136]
Owner
Markus
Code Is A Liability. Formerly @ovotech, @HewlettPackard
Markus
Similar Resources

Whereis - Displays management information for IPs associated with the domain

Whereis - Displays management information for IPs associated with the domain

"whereis" is Displays management information for IPs associated with the domain.

Jan 7, 2023

A Go module that checks a domain's email information

mail-checker This checks a domain's email information, if it has DMARC, SPF Record, and or a Mail Server Bitcoin donations are welcome: 1J2aMYUnkPXkzE

Nov 10, 2022

Implementing SPEEDEX price computation engine in Golang as a standalone binary that exchanges can call

speedex-standalone Implementing SPEEDEX price computation engine in Golang as a standalone binary that exchanges can call. Notes from Geoff About Tato

Dec 1, 2021

Simple Nginx Load Balancing Use Docker Engine

Simple Nginx Load Balancing Use Docker Engine

Load Balancing Menggunakan Nginx Load Balancing adalah sebuah mekanisme untuk membagi atau mendistribusikan trafik ke beberapa server. Nginx selain be

Dec 14, 2021

Core is the next-generation digital data engine.

Core is the next-generation digital data engine.

tKeel-Core The digital engine of world 🌰 Core is the data centre of the tKeel IoT Open Platform, a high-performance, scalable and lightweight next-ge

Mar 28, 2022

Kakoune syntax highlighting for the Godot Engine / Godot Scripting Language gdscript

Kakoune syntax highlighting for the Godot Engine / Godot Scripting Language gdscript

gdscript-kak Kakoune syntax highlighting for the Godot Engine / Godot Scripting Language gdscript. Adds basic syntax highlighting to your .gd files fo

Mar 2, 2021

Grcon - Lib for Source Engine's RCON protocol in Go

grcon A basic Golang library for the RCON Protocol. Features Max control over th

Mar 5, 2022

A go implementation of the STUN client (RFC 3489 and RFC 5389)

go-stun go-stun is a STUN (RFC 3489, 5389) client implementation in golang (a.k.a. UDP hole punching). RFC 3489: STUN - Simple Traversal of User Datag

Jan 5, 2023

A QUIC implementation in pure go

A QUIC implementation in pure go

A QUIC implementation in pure Go quic-go is an implementation of the QUIC protocol in Go. It implements the IETF QUIC draft-29 and draft-32. Version c

Jan 9, 2023
Rabbitio - Rabbit stream cipher package RFC 4503 for Go

rabbitio rabbitio is a rabbit stream cipher packge based on RFC 4503 for golang

Dec 14, 2022
Information Gathering tool - DNS / Subdomains / Ports / Directories enumeration
Information Gathering tool - DNS / Subdomains / Ports / Directories enumeration

Information Gathering tool - DNS / Subdomains / Ports / Directories enumeration

Jan 3, 2023
🌌 A libp2p DHT crawler that gathers information about running nodes in the network.
🌌 A libp2p DHT crawler that gathers information about running nodes in the network.

A libp2p DHT crawler that gathers information about running nodes in the network. The crawler runs every 30 minutes by connecting to the standard DHT bootstrap nodes and then recursively following all entries in the k-buckets until all peers have been visited.

Dec 27, 2022
A simple Go lib to get information on Covid-19

Govid A simple Go library which lets you get information on Covid-19 Examples Getting total data about all countires: package main import ( "Govid/g

Aug 18, 2022
Uses the Finger user information protocol to open a TCP connection that makes a request to a Finger server

Finger Client This client uses the Finger user information protocol to open a TCP connection that makes a request to a Finger server. Build and Run Ru

Oct 7, 2021
Gopi - Simple API for get geo information about your IP Address, Build by go-fiber

gopi Simple API to get information from your IP Address Idea This idea come from IP zxq and literaly i clone it How to download GeoIP2 ? Remember to c

May 27, 2022
Just another "what is my IP address" service, including geolocation and headers information

What is my IP address What is my IP address Features Endpoints Build Usage Examples Run a default TCP server Run a TLS (HTTP/2) server only Run a defa

Nov 21, 2022
Extract domain from SSL Information

Extract domain from SSL Information

Dec 7, 2022
A Go client used to fetch information from the Go API

Hilo Client Go Hilo API Go client, Introduction This is a (partial) Go client used to fetch information from the Go API, most of the reverse engineeri

Nov 27, 2021
Golang tool to parse netblocks and domain names from SPF and get information about ASN
Golang tool to parse netblocks and domain names from SPF and get information about ASN

gospf Example Install go get github.com/incogbyte/gospf # get from releases ht

Nov 14, 2022