     private var _creator:           CFNumberRef!
     private var _type:              CFNumberRef!
     private var _label:             CFStringRef!
-    private var _isInvisible:       CFBooleanRef!
     private var _isNegative:        CFBooleanRef!
     private var _account:           CFStringRef!
     private var _service:           CFStringRef!
     private var _generic:           CFDataRef!
     
-    var accessibility: Accessibility {
+    var accessibility: CFStringRef {
         get {
             return _accessibility
         }

        }
    }
    
    public init(attributes: Dictionary<String, Any>) {
        accessibility   = .WhenUnlocked
        //isInvisible     = kCFBooleanFalse
    }
}

/*
struct Certificate: Key {
}

struct PrivateKey: Key {
}

struct Identity: Key {
}
*/

import Foundation

protocol KeyProtocol {
    
    var accessibility: CFStringRef { get set }
    var accessGroup: CFStringRef { get set }
    init(attributes: Dictionary<String, Any>)
}

public class Key {
    
    private var _accessibility:     CFStringRef!
    private var _isInvisible:       CFBooleanRef!
    
    public init(attributes: Dictionary<String, Any>) {
        
        _accessibility   = kSecAttrAccessibleWhenUnlocked
        _isInvisible     = kCFBooleanFalse
    }
}

public class GenericKey: Key, KeyProtocol {
    
    private var _accessGroup:       CFStringRef!
    private var _creationDate:      CFDateRef!
    private var _modificationDate:  CFDateRef!
