Exemplo n.º 1
0
 /// <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);
 }
Exemplo n.º 2
0
        /// <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));
        }