func addPermissionToStorage(permission Permission, prefix string, storage *ss.SecureStorage) error {
	if storage == nil {
		return fmt.Errorf("Cannot add to storage: Storage is nil")
	}
	val, _ := json.Marshal(permission)
	return storage.AddItem(getEntityStoreFmt(permissionTypeStr+prefix, "", string(permission)), string(val))
}
// Add the Entity's data to disk (in JSON format)
func (e *Entity) addEntityToStorage(prefix string, storage *ss.SecureStorage) error {
	if storage == nil {
		return fmt.Errorf("Cannot add to storage: Storage is nil")
	}
	val, _ := json.Marshal(e)
	return storage.AddItem(prefix, string(val))
}
// Add the group's data to disk (in JSON format)
func (g *Group) addGroupToStorage(prefix string, storage *ss.SecureStorage) error {
	if storage == nil {
		return fmt.Errorf("Cannot add group to storage: Storage is nil")
	}
	val, _ := json.Marshal(g)
	return storage.AddItem(prefix, string(val))
}
func playWithSecureStorage(storage *ss.SecureStorage, secret []byte) {
	fileName := "try.txt"
	defer os.Remove(fileName)
	err := storage.StoreInfo(fileName)
	if err != nil {
		fmt.Println("Error while saving:", err)
	}

	fmt.Println("Original data:")
	fmt.Println(storage.GetDecryptStorageData())

	keyText := fmt.Sprintf(keyFmt, 1)
	err = storage.RemoveItem(keyText)
	if err != nil {
		fmt.Println("Error while remove key:", err)
	}

	fmt.Println("After removing:")
	fmt.Println(storage.GetDecryptStorageData())

	sd, err := ss.LoadInfo(fileName, secret)
	if err != nil {
		fmt.Println("Error while reading:", err)
	}
	fmt.Println("The data that was read from file:", fileName)
	fmt.Println(sd.GetDecryptStorageData())
}
// AddToStorage : Add the OCRA property information to the secure_storage
func (s Serializer) AddToStorage(prefix string, data interface{}, storage *ss.SecureStorage) error {
	d, ok := data.(*UserOcra)
	if ok == false {
		return fmt.Errorf("Cannot store the OCRA property: Not the right type")
	}
	if storage == nil {
		return fmt.Errorf("Cannot add OCRA property to storage: Storage is nil")
	}
	value, _ := json.Marshal(d)
	err := storage.AddItem(prefix, string(value))
	if err != nil {
		return err
	}
	return nil
}
예제 #6
0
// AddToStorage : Add the ACL property information to the secure_storage
func (s Serializer) AddToStorage(prefix string, data interface{}, storage *ss.SecureStorage) error {
	lock.Lock()
	defer lock.Unlock()

	d, ok := data.(*Acl)
	if ok == false {
		return fmt.Errorf("Cannot store the ACL property: Illegal type")
	}
	if storage == nil {
		return fmt.Errorf("Cannot add an ACL property to storage: Storage is nil")
	}
	value, err := json.Marshal(d)
	err = storage.AddItem(prefix, string(value))
	if err != nil {
		return err
	}
	return nil
}