public override IPermission CreatePermission() { DataProtectionPermission perm = null; if (this.Unrestricted) { perm = new DataProtectionPermission(PermissionState.Unrestricted); } else { perm = new DataProtectionPermission(_flags); } return(perm); }
public override IPermission Union(IPermission target) { DataProtectionPermission dp = Cast(target); if (dp == null) { return(this.Copy()); } if (this.IsUnrestricted() || dp.IsUnrestricted()) { return(new SecurityPermission(PermissionState.Unrestricted)); } return(new DataProtectionPermission(_flags | dp._flags)); }
// helpers private DataProtectionPermission Cast(IPermission target) { if (target == null) { return(null); } DataProtectionPermission dp = (target as DataProtectionPermission); if (dp == null) { PermissionHelper.ThrowInvalidPermission(target, typeof(DataProtectionPermission)); } return(dp); }
public override bool IsSubsetOf(IPermission target) { if (target == null) { return(m_flags == DataProtectionPermissionFlags.NoFlags); } try { DataProtectionPermission operand = (DataProtectionPermission)target; DataProtectionPermissionFlags sourceFlag = this.m_flags; DataProtectionPermissionFlags targetFlag = operand.m_flags; return((sourceFlag & targetFlag) == sourceFlag); } catch (InvalidCastException) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Argument_WrongType"), this.GetType().FullName)); } }
public override bool IsSubsetOf(IPermission target) { DataProtectionPermission dp = Cast(target); if (dp == null) { return(_flags == DataProtectionPermissionFlags.NoFlags); } if (dp.IsUnrestricted()) { return(true); } if (this.IsUnrestricted()) { return(false); } return((_flags & ~dp._flags) == 0); }
public override bool IsSubsetOf(IPermission target) { bool flag; if (target == null) { return(this.m_flags == DataProtectionPermissionFlags.NoFlags); } try { DataProtectionPermission permission = (DataProtectionPermission)target; DataProtectionPermissionFlags flags = this.m_flags; DataProtectionPermissionFlags flags2 = permission.m_flags; flag = (flags & flags2) == flags; } catch (InvalidCastException) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Argument_WrongType"), new object[] { base.GetType().FullName })); } return(flag); }
// // IPermission implementation // public override IPermission Union(IPermission target) { if (target == null) { return(this.Copy()); } try { DataProtectionPermission operand = (DataProtectionPermission)target; DataProtectionPermissionFlags flag_union = m_flags | operand.m_flags; if (flag_union == DataProtectionPermissionFlags.NoFlags) { return(null); } else { return(new DataProtectionPermission(flag_union)); } } catch (InvalidCastException) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Argument_WrongType"), this.GetType().FullName)); } }
public override IPermission Intersect(IPermission target) { IPermission permission2; if (target == null) { return null; } try { DataProtectionPermission permission = (DataProtectionPermission) target; DataProtectionPermissionFlags flag = permission.m_flags & this.m_flags; if (flag == DataProtectionPermissionFlags.NoFlags) { return null; } permission2 = new DataProtectionPermission(flag); } catch (InvalidCastException) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Argument_WrongType"), new object[] { base.GetType().FullName })); } return permission2; }
public override IPermission Intersect(IPermission target) { DataProtectionPermission dp = Cast(target); if (dp == null) { return(null); } if (this.IsUnrestricted() && dp.IsUnrestricted()) { return(new DataProtectionPermission(PermissionState.Unrestricted)); } if (this.IsUnrestricted()) { return(dp.Copy()); } if (dp.IsUnrestricted()) { return(this.Copy()); } return(new DataProtectionPermission(_flags & dp._flags)); }
public override IPermission Intersect(IPermission target) { IPermission permission2; if (target == null) { return(null); } try { DataProtectionPermission permission = (DataProtectionPermission)target; DataProtectionPermissionFlags flag = permission.m_flags & this.m_flags; if (flag == DataProtectionPermissionFlags.NoFlags) { return(null); } permission2 = new DataProtectionPermission(flag); } catch (InvalidCastException) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Argument_WrongType"), new object[] { base.GetType().FullName })); } return(permission2); }
public override IPermission CreatePermission () { DataProtectionPermission perm = null; if (this.Unrestricted) perm = new DataProtectionPermission (PermissionState.Unrestricted); else perm = new DataProtectionPermission (_flags); return perm; }
internal static int SystemFunction041 ( [In,Out] byte[] pDataIn, [In] uint cbDataIn, // multiple of RTL_ENCRYPT_MEMORY_SIZE [In] uint dwFlags) { // Semi-trusted callers are not allowed to use DPAPI since it uses the user/machine credentials. DataProtectionPermission dp = new DataProtectionPermission(DataProtectionPermissionFlags.UnprotectMemory); dp.Demand(); return CAPIUnsafe.SystemFunction041(pDataIn, cbDataIn, dwFlags); }
internal static bool CryptUnprotectData ( [In] IntPtr pDataIn, [In] IntPtr ppszDataDescr, [In] IntPtr pOptionalEntropy, [In] IntPtr pvReserved, [In] IntPtr pPromptStruct, [In] uint dwFlags, [In,Out] IntPtr pDataBlob) { // Semi-trusted callers are not allowed to use DPAPI since it uses the user/machine credentials. DataProtectionPermission dp = new DataProtectionPermission(DataProtectionPermissionFlags.UnprotectData); dp.Demand(); return CAPIUnsafe.CryptUnprotectData(pDataIn, ppszDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataBlob); }