COVID-19 Update: A message to our Customers, Partners, and SALTO Systems Community. Read more.

Show me content for:IOSANDROID

ClaySDK

Carthage compatible CocoaPods compatible License: MIT

By Salto KS.

Introduction

This SDK for iOS contains the most up-to-date frameworks for integrating Mobile Key technology into your own iOS applications. It will setup the necessary security to communicate with Connect API, and unlock locks with encrypted Mobile Keys returned by the Connect API. The SDK for iOS includes iOS libraries, developer documentation and a sample Xcode project to get you up and running quickly and easily.

Requirements

  • iOS 11+
  • Xcode 11.5
  • Swift 5.2

Apart from that, these frameworks must be included into the target project:

  • SaltoJustINMobileSDK.xcframework
  • CoreBluetooth.framework
  • Foundation.framework
  • VirgilSDK
  • VirgilCrypto
  • VirgilCryptoFoundation
  • VSCCommon
  • VSCFoundation

Installation

First, you need to obtain a copy of the JustInMobile iOS SDK from Salto Systems. Once you have this copy, you can start using the SDK.

The Virgil libraries can be found at Virgil Security Objective-C/Swift SDK

CocoaPods

CocoaPods is a dependency manager for Cocoa projects.

To install ClaySDK, simply add the following line to your Podfile:

pod 'ClaySDK', '~> 1.8'

Carthage

Carthage is a simple, decentralized dependency manager for Cocoa.

To install ClaySDK, simply add the following line to your Cartfile:

github "ClaySolutions/ClaySDK" "1.8.0"

Include framework from Carthage/Build/iOS folder. Follow instructions for including VirgilSDK

Usage

import ClaySDK
//...
//'self' must conform to ClayDelegate, the apiKey will be provided to you
let clay = ClaySDK(installationUID: "SOME_UNIQUE_ID", apiKey: "THE_API_PUBLIC_KEY", delegate: self)
//...
// Public key that you need to send via API to activate mobile key
let publicKey = clay.getPublicKey()
//...
//'yourOpenDoorDelegate' must conform to OpenDoorDelegate
clay.openDoor(with: "your-encrypted-key", delegate: yourOpenDoorDelegate)

Inside OpenDoorDelegate implementation ClayResult can be handled

import SaltoJustINMobileSDK
//...
func didOpen(with result: ClayResult?) {
    guard let result = result else { return }
    if (result.getOpResult() == AUTH_SUCCESS_ACCESS_GRANTED) {
        // access granted
    }
    // or by using SSOperationGrup
    let group = SSOpResult.getGroup(result.getOpResult())
    switch group {
    case .groupAccepted: // success
        break
    case .groupFailure, .groupRejected, .groupUnknownResult:
        break
    default:
        break
    }
}

Author

Changelog

See CHANGELOG.