Zig
Zig
Gather Smartcard Debug Information for Chilkat
See more ScMinidriver Examples
This example demonstrates how to gather information to send to support@chilkatsoft.com about your smartcard.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// First, Chilkat recommends downloading the MGTEK Smartcard Minidriver Tool to get information
// about your smartcard.
// The tool can be downloaded from https://www.mgtek.com/smartcard
// --------------------------------------------------------------------------------------------------------
// 1. Select the smartcard as shown below and send Chilkat a screenshot of the basic smartcard information.
// --------------------------------------------------------------------------------------------------------
//
// (image:https://example-code.com/images/mgtek_screenshot.jpg/endImage)
//
// --------------------------------------------------------------------------------------------------------
// 2. Select the cmapfile (if present) as shown below and send Chilkat a screenshot of the CSP container map
// --------------------------------------------------------------------------------------------------------
//
// (image:https://example-code.com/images/cmapfile_screenshot.jpg/endImage)
//
// ---------------------------------------------------------
// Chilkat provides functions to get information about the smartcard, and what it contains.
// Send Chilkat the output of the following source code:
const scmd = try chilkat.ScMinidriver.init();
defer scmd.deinit();
// Reader names (smart card readers or USB tokens) can be discovered
// via PCSC List Readers or PCSC Find Smart Cards
const reader_name = "Alcor Micro USB Smart Card Reader 0";
scmd.acquireContext(reader_name) catch {
std.debug.print("{s}\n", .{try scmd.getLastErrorText(alloc)});
return;
};
const json = try chilkat.JsonObject.init();
defer json.deinit();
json.setEmitCompact(false);
// ------------------------------------------------------
// 3. Send Chilkat the JSON returned by GetCardProperties
// ------------------------------------------------------
scmd.getCardProperties(json) catch {
std.debug.print("{s}\n", .{try scmd.getLastErrorText(alloc)});
return;
};
std.debug.print("{s}\n", .{try json.emit(alloc)});
// ------------------------------------------------------
// 4. Send Chilkat the JSON returned by GetCspContainerMap
// ------------------------------------------------------
json.clear();
scmd.getCspContainerMap(json) catch {
std.debug.print("{s}\n", .{try scmd.getLastErrorText(alloc)});
return;
};
std.debug.print("{s}\n", .{try json.emit(alloc)});
}