1-Wire Software Authorization SDK

The 1-Wire® Software Authorization Kit is a software development kit (SDK) designed specifically to help secure software programs and to provide license control and user validation services. The SDK contains a software authorization library built on top of the popular 1-Wire Public Domain Kit's software libraries and provides a complete application programming interface (API). The software authorization library can be integrated into the application developer's custom software, and then distributed with it. The library provides authentication services that communicate to an iButton® and authenticates the iButton as a hardware token representing a specific end-user and/or valid software license, thus protecting against misuse or software piracy. Several 1-Wire adapters, the USB port (DS9490B), parallel port (DS1410E), or serial port (DS1411), can be used with the appropriate iButton to secure the software. (This is sometimes called a security dongle.)

The SDK includes several example programs with source code that show you how to use the software library with different iButton devices. There are two versions of the SDK download, one with example programs built for 32-bit Windows Vista®, Windows® XP, and Windows Server 2003 and one built for 64-bit Windows Vista x64, Windows XP x64, and Windows Server 2003 x64. Note however, the SDK can be built (using the necessary link files) for any platform supported by the 1-Wire Public Domain Kit.

Download Version 3.11 Beta2

Alternate Download Version 2.00

The Software Authorization API is based on the simplest use scenario possible, and is designed to make integration into existing software code painless. The API provides three main services:

  • Initializing a device
  • Authenticating a device
  • Clearing a device (so it is no longer a valid part of the system)

Software Authorization Security Hardware


Although Several 1-Wire adapters (iButton readers) work with the Software Authorization SDK, only the adapters that hold an iButton are recommended for software security devices (dongles). Thus to build a security device, the developer only needs to initialize an iButton, place it securely into the 1-Wire adapter, and ship it with the software

Recommended 1-Wire Adapters for Security Devices (Dongles)

1-Wire Adapter Picture Description
DS9490B software-authorization-sdk-1 USB single-port iButton holder with internal 64-bit address. Can also be used as a key fob.
DS1411-009 software-authorization-sdk-2 Serial port iButton holder with internal 64-bit address.
DS1410E-001 software-authorization-sdk-3 Parallel port iButton holder with internal 64-bit address. Holds up to 2 iButtons.

*For iButton initialization, we recommend 1-Wire adapters that have an RJ11 cable out to multiple iButton receptacles, such as the DS9490R (USB) or DS9097U-009 (serial) coupled with the DS1402D-DR8 RJ11 Blue Dot.

iButtons/1-Wire Devices Supported

iButton/1-Wire Device Description
DS1977 A password-protected EEPROM device capable of storing 32 kilobytes. Passwords provide both write- and read-protection.
DS1963S A 512-byte NVRAM device with integrated SHA, eight write-only 8-byte secrets, and eight read-only 4-byte write-cycle counters for secure data verification. Data write-protection is achieved with the use of a digital signature that indicates if data is manipulated.
DS1961S/DS2432 (iButton/Chip) A 128-byte EEPROM device with integrated SHA engine and a write-only 8-byte secret which provides both data verification and write-protection.

What is New in Version 2.00


Everything is new. The Software Authorization Kit has been entirely rewritten, improved, and simplified. All the examples use the triple DES encryption algorithm for hiding the contents of the data packet used for authorization.

1-Wire Software Authorization SDK Contents

  • Source Code The source code to the example programs and the entire API are provided and can be found in the download.
  • Readme The kit contains a readme.txt file that provides thorough instructions.
  • Example Programs Three programs with source code are included, and provide excellent storehouses of code from which to copy and paste.

Example Program Description of Program
SoftAuthInit Sample application for initializing a device for use in the Software Authorization Library.
SoftAuthCheck Sample application for authenticating a device initialized for use in the Software Authorization Library.
SoftAuthClear Sample application for clearing a device, so that it can no longer be used as a valid device in the Software Authorization Library.