/// <summary> /// Creates attribute of given type with mechanism array value /// </summary> /// <param name="type">Attribute type</param> /// <param name="value">Attribute value</param> public ObjectAttribute(CKA type, List <CKM> value) { CKM[] mechanisms = null; if (value != null) { mechanisms = value.ToArray(); } _ckAttribute = LowLevelAPI.CkaUtils.CreateAttribute(type, mechanisms); }
/// <summary> /// Creates attribute of given type with uint array value /// </summary> /// <param name="type">Attribute type</param> /// <param name="value">Attribute value</param> public ObjectAttribute(CKA type, List <uint> value) { uint[] uints = null; if (value != null) { uints = value.ToArray(); } _ckAttribute = LowLevelAPI.CkaUtils.CreateAttribute(type, uints); }
/// <summary> /// Creates attribute of given type with attribute array value /// </summary> /// <param name="type">Attribute type</param> /// <param name="value">Attribute value</param> public ObjectAttribute(CKA type, List <ObjectAttribute> value) { LowLevelAPI.CK_ATTRIBUTE[] attributes = null; if (value != null) { attributes = new LowLevelAPI.CK_ATTRIBUTE[value.Count]; for (int i = 0; i < value.Count; i++) { attributes[i] = value[i].CkAttribute; } } // Note: Each attribute in the input list still owns unmanaged memory used by its value and will free it when disposed. _ckAttribute = LowLevelAPI.CkaUtils.CreateAttribute(type, attributes); }
/// <summary> /// Creates attribute defined by low level CK_ATTRIBUTE structure /// </summary> /// <param name="attribute">CK_ATTRIBUTE structure</param> internal ObjectAttribute(LowLevelAPI.CK_ATTRIBUTE attribute) { _ckAttribute = attribute; }
/// <summary> /// Creates attribute of given type with DateTime (CK_DATE) value /// </summary> /// <param name="type">Attribute type</param> /// <param name="value">Attribute value</param> public ObjectAttribute(CKA type, DateTime value) { _ckAttribute = LowLevelAPI.CkaUtils.CreateAttribute(type, value); }
/// <summary> /// Creates attribute of given type with byte array value /// </summary> /// <param name="type">Attribute type</param> /// <param name="value">Attribute value</param> public ObjectAttribute(uint type, byte[] value) { _ckAttribute = LowLevelAPI.CkaUtils.CreateAttribute(type, value); }
/// <summary> /// Creates attribute of given type with no value /// </summary> /// <param name="type">Attribute type</param> public ObjectAttribute(CKA type) { _ckAttribute = LowLevelAPI.CkaUtils.CreateAttribute(type); }