summaryrefslogtreecommitdiff
path: root/src/vm/securitytransparentassembly.inl
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/securitytransparentassembly.inl')
-rw-r--r--src/vm/securitytransparentassembly.inl259
1 files changed, 0 insertions, 259 deletions
diff --git a/src/vm/securitytransparentassembly.inl b/src/vm/securitytransparentassembly.inl
deleted file mode 100644
index 2b35a7ebe4..0000000000
--- a/src/vm/securitytransparentassembly.inl
+++ /dev/null
@@ -1,259 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-//--------------------------------------------------------------------------
-// securitytransparentassembly.inl
-//
-// Implementation for transparent code feature
-//
-
-
-//--------------------------------------------------------------------------
-
-
-#ifndef __SECURITYTRANSPARENT_INL__
-#define __SECURITYTRANSPARENT_INL__
-
-//---------------------------------------------------------------------------------------
-//
-// Create a transparency behavior object
-//
-// Arguments:
-// pTransparencyImpl - transparency implementation to base behavior decisions on
-//
-// Notes:
-// The tranparency implementation object must have a lifetime at least as long as the
-// created transparency behavior object.
-//
-
-inline SecurityTransparencyBehavior::SecurityTransparencyBehavior(ISecurityTransparencyImpl *pTransparencyImpl) :
- m_pTransparencyImpl(pTransparencyImpl),
- m_flags(pTransparencyImpl->GetBehaviorFlags())
-{
- LIMITED_METHOD_CONTRACT;
- _ASSERTE(pTransparencyImpl);
-}
-
-//
-// Typed logical operators for transparency flags
-//
-
-inline SecurityTransparencyBehaviorFlags operator|(SecurityTransparencyBehaviorFlags lhs,
- SecurityTransparencyBehaviorFlags rhs)
-{
- LIMITED_METHOD_CONTRACT;
- return static_cast<SecurityTransparencyBehaviorFlags>(static_cast<DWORD>(lhs) |
- static_cast<DWORD>(rhs));
-}
-
-inline SecurityTransparencyBehaviorFlags operator|=(SecurityTransparencyBehaviorFlags& lhs,
- SecurityTransparencyBehaviorFlags rhs)
-{
- LIMITED_METHOD_CONTRACT;
- lhs = static_cast<SecurityTransparencyBehaviorFlags>(static_cast<DWORD>(lhs) |
- static_cast<DWORD>(rhs));
- return lhs;
-}
-
-inline SecurityTransparencyBehaviorFlags operator&(SecurityTransparencyBehaviorFlags lhs,
- SecurityTransparencyBehaviorFlags rhs)
-{
- LIMITED_METHOD_CONTRACT;
- return static_cast<SecurityTransparencyBehaviorFlags>(static_cast<DWORD>(lhs) &
- static_cast<DWORD>(rhs));
-}
-
-inline SecurityTransparencyBehaviorFlags operator&=(SecurityTransparencyBehaviorFlags& lhs,
- SecurityTransparencyBehaviorFlags rhs)
-{
- LIMITED_METHOD_CONTRACT;
- lhs = static_cast<SecurityTransparencyBehaviorFlags>(static_cast<DWORD>(lhs) &
- static_cast<DWORD>(rhs));
- return lhs;
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Are types and methods required to obey the transparency inheritance rules
-//
-
-inline bool SecurityTransparencyBehavior::AreInheritanceRulesEnforced() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_InheritanceRulesEnforced);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Can public critical members of an assembly behave as if they were safe critical with a
-// LinkDemand for FullTrust
-//
-
-inline bool SecurityTransparencyBehavior::CanCriticalMembersBeConvertedToLinkDemand() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_CriticalMembersConvertToLinkDemand);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Can members contained within a scope that introduces members as critical add their own
-// TreatAsSafe attribute
-//
-
-inline bool SecurityTransparencyBehavior::CanIntroducedCriticalMembersAddTreatAsSafe() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_IntroducedCriticalsMayAddTreatAsSafe);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Can transparent methods call methods protected with a LinkDemand
-//
-
-inline bool SecurityTransparencyBehavior::CanTransparentCodeCallLinkDemandMethods() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_TransparentCodeCanCallLinkDemand);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Can transparent members call native code directly
-//
-
-inline bool SecurityTransparencyBehavior::CanTransparentCodeCallUnmanagedCode() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransaprencyBehaviorFlags_TransparentCodeCanCallUnmanagedCode);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Can transparent members skip verification if the callstack passes a runtime check
-//
-
-inline bool SecurityTransparencyBehavior::CanTransparentCodeSkipVerification() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_TransparentCodeCanSkipVerification);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Custom attributes require transparency checks in order to be used by critical code
-//
-
-inline bool SecurityTransparencyBehavior::DoAttributesRequireTransparencyChecks() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_AttributesRequireTransparencyCheck);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Opportunistically critical assemblies consist of entirely transparent types with entirely safe
-// critical methods.
-inline bool SecurityTransparencyBehavior::DoesOpportunisticRequireOnlySafeCriticalMethods() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_OpportunisticIsSafeCriticalMethods);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Does being loaded in partial trust imply that the assembly is implicitly all transparent
-//
-
-inline bool SecurityTransparencyBehavior::DoesPartialTrustImplyAllTransparent() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_PartialTrustImpliesAllTransparent);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Do all public types and methods automatically become treat as safe
-//
-
-inline bool SecurityTransparencyBehavior::DoesPublicImplyTreatAsSafe() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_PublicImpliesTreatAsSafe);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Do security critical or safe critical at a larger than method scope apply only to methods introduced
-// within that scope, or to all methods conateind within the scope.
-//
-// For instance, if this method returns true, a critical type does not make a method it overrides critical
-// because that method was introduced in a base type.
-//
-
-inline bool SecurityTransparencyBehavior::DoesScopeApplyOnlyToIntroducedMethods() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_ScopeAppliesOnlyToIntroducedMethods);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Do unsigned assemblies implicitly become APTCA
-//
-
-inline bool SecurityTransparencyBehavior::DoesUnsignedImplyAPTCA() const
-{
- LIMITED_METHOD_CONTRACT;
- return !!(m_flags & SecurityTransparencyBehaviorFlags_UnsignedImpliesAPTCA);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Map the attributes found on a field into bits that represent what those attributes
-// mean to this field.
-//
-
-inline FieldSecurityDescriptorFlags SecurityTransparencyBehavior::MapFieldAttributes(TokenSecurityDescriptorFlags tokenFlags) const
-{
- WRAPPER_NO_CONTRACT;
- return m_pTransparencyImpl->MapFieldAttributes(tokenFlags);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Map the attributes found on a method to the security transparency of that method
-//
-
-inline MethodSecurityDescriptorFlags SecurityTransparencyBehavior::MapMethodAttributes(TokenSecurityDescriptorFlags tokenFlags) const
-{
- WRAPPER_NO_CONTRACT;
- return m_pTransparencyImpl->MapMethodAttributes(tokenFlags);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Map the attributes found on an assembly into bits that represent what those
-// attributes mean to this assembly.
-//
-
-inline ModuleSecurityDescriptorFlags SecurityTransparencyBehavior::MapModuleAttributes(TokenSecurityDescriptorFlags tokenFlags) const
-{
- WRAPPER_NO_CONTRACT;
- return m_pTransparencyImpl->MapModuleAttributes(tokenFlags);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Map the attributes found on a type into bits that represent what those
-// attributes mean to this type.
-//
-
-inline TypeSecurityDescriptorFlags SecurityTransparencyBehavior::MapTypeAttributes(TokenSecurityDescriptorFlags tokenFlags) const
-{
- WRAPPER_NO_CONTRACT;
- return m_pTransparencyImpl->MapTypeAttributes(tokenFlags);
-}
-
-#endif // __SECURTYTRANSPARENT_INL__