Skip to content

Swift wrapper for reference C implementation of Blake2b hash

License

Notifications You must be signed in to change notification settings

tesseract-one/Blake2.swift

Repository files navigation

Blake2.swift

🐧 linux: ready GitHub license Build Status GitHub release SPM compatible CocoaPods version Platform macOS | iOS | tvOS | watchOS | Linux

Swift wrapper for reference C implementation of BLAKE2 hash functions.

Installation

Blake2 deploys to macOS, iOS, tvOS, watchOS and Linux. It has been tested on the latest OS releases only however, as the module uses very few platform-provided APIs, there should be very few issues with earlier versions.

Setup instructions:

  • Swift Package Manager: Add this to the dependency section of your Package.swift manifest:

    .package(url: "https://github.com/tesseract-one/Blake2.swift.git", from: "0.2.0")
  • CocoaPods: Put this in your Podfile:

    pod 'Blake2', '~> 0.2'

Usage Examples

import Blake2

let data = Data("some data for hashing".utf8)

// Simple hash api. 64 byte Blake2b hash.
let hash = try! Blake2b.hash(size: 64, data: data)
print("Hash", hash)

// Streaming hash api. 64 byte Blake2b hash.
// Create hasher object
var hasher = try! Blake2b(size: 64)
// insert data by chunks
hasher.update(data)
// and then finalize hasher
let hash2 = try! hasher.finalize()
print("Hash", hash2)

License

Blake2.swift can be used, distributed and modified under the Apache 2.0 license.