/// <summary> /// Converts low level CK_INFO structure to high level LibraryInfo class /// </summary> /// <param name="ck_info">Low level CK_INFO structure</param> internal LibraryInfo(LowLevelAPI.CK_INFO ck_info) { _cryptokiVersion = ConvertUtils.CkVersionToString(ck_info.CryptokiVersion); _manufacturerId = ConvertUtils.BytesToUtf8String(ck_info.ManufacturerId, true); _flags = ck_info.Flags; _libraryDescription = ConvertUtils.BytesToUtf8String(ck_info.LibraryDescription, true); _libraryVersion = ConvertUtils.CkVersionToString(ck_info.LibraryVersion); }
/// <summary> /// Gets general information about loaded PKCS#11 library /// </summary> /// <returns>General information about loaded PKCS#11 library</returns> public LibraryInfo GetInfo() { if (this._disposed) { throw new ObjectDisposedException(this.GetType().FullName); } LowLevelAPI.CK_INFO info = new LowLevelAPI.CK_INFO(); CKR rv = _p11.C_GetInfo(ref info); if (rv != CKR.CKR_OK) { throw new Pkcs11Exception("C_GetInfo", rv); } return(new LibraryInfo(info)); }