Described are security critical data containers for platform code,
comprising a Get container and Set container that allow data to be marked
as security critical for critical usage of that data, but left unmarked
for non-critical usage. The number of critical methods in the code is
reduced, facilitating better code analysis. A container's method may be
marked as security critical, with the only access to the data via the
method. By using a generic class for a Get container, access to the
critical data only occurs through the property on the class, which is
marked as critical. The field pointing to the generic class instance need
not be critical, whereby initialization or existence checking may remain
non-critical. The Set container handles security critical situations such
as data that controls whether code can elevate permissions; a set method
is marked as critical, while other methods can be accessed by
non-critical code.