Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMacosEntitlements Class Reference

#include <KisMacosEntitlements.h>

+ Inheritance diagram for KisMacosEntitlements:

Classes

class  Private
 

Public Types

enum  Entitlements { Sandbox = 0 , BookmarkScopeApp , BookmarkScopeDocument , Other = 99 }
 

Public Member Functions

bool hasEntitlement (Entitlements)
 
 KisMacosEntitlements ()
 
void loadAvailableEntitlements (void)
 
bool sandbox ()
 
 ~KisMacosEntitlements ()
 

Private Attributes

const QScopedPointer< Privatem_d
 

Detailed Description

Definition at line 12 of file KisMacosEntitlements.h.

Member Enumeration Documentation

◆ Entitlements

Enumerator
Sandbox 
BookmarkScopeApp 
BookmarkScopeDocument 
Other 

Definition at line 18 of file KisMacosEntitlements.h.

18 {
19 Sandbox = 0, // com.apple.security.app-sandbox
20 BookmarkScopeApp, // com.apple.security.files.bookmarks.app-scope
21 BookmarkScopeDocument, // com.apple.security.files.bookmarks.document-scope
22 Other = 99
23 };

Constructor & Destructor Documentation

◆ KisMacosEntitlements()

KisMacosEntitlements::KisMacosEntitlements ( )

Definition at line 42 of file KisMacosEntitlements.mm.

43 : m_d(new Private())
44{
46}
const QScopedPointer< Private > m_d

References loadAvailableEntitlements().

◆ ~KisMacosEntitlements()

KisMacosEntitlements::~KisMacosEntitlements ( )

Definition at line 48 of file KisMacosEntitlements.mm.

49{
50}

Member Function Documentation

◆ hasEntitlement()

bool KisMacosEntitlements::hasEntitlement ( Entitlements key)

Definition at line 94 of file KisMacosEntitlements.mm.

95{
96 // we assume if given entitlement exists then its true, but this is not always the case
97 return m_d->entitlements.contains(key);
98}

References m_d.

◆ loadAvailableEntitlements()

void KisMacosEntitlements::loadAvailableEntitlements ( void )

Definition at line 53 of file KisMacosEntitlements.mm.

54{
55 OSStatus status;
56 SecCodeRef kritaRef = NULL;
57 CFDictionaryRef dynamicInfo = NULL;
58
59 status = SecCodeCopySelf(kSecCSDefaultFlags, &kritaRef);
60// KIS_ASSERT_RECOVER_RETURN_VALUE(status == errSecSuccess, isSandboxed);
61
62 SecCodeCopySigningInformation(kritaRef, (SecCSFlags) kSecCSDynamicInformation, &dynamicInfo);
63// KIS_ASSERT_RECOVER_RETURN_VALUE(status == errSecSuccess, isSandboxed);
64
65 CFDictionaryRef rawEntitlements = (CFDictionaryRef)CFDictionaryGetValue(dynamicInfo, kSecCodeInfoEntitlementsDict);
66
67 if (rawEntitlements) {
68 NSDictionary *entitlementsDir = (__bridge NSDictionary*)rawEntitlements;
69
70 for (NSString *key in entitlementsDir) {
71 id value = entitlementsDir[key];
72 if ([key isEqualToString:@"com.apple.security.app-sandbox"]) {
73 m_d->entitlements[Entitlements::Sandbox] = [value boolValue];
74 }
75 else if ([key isEqualToString:@"com.apple.security.files.bookmarks.app-scope"]) {
76 m_d->entitlements[Entitlements::BookmarkScopeApp] = [value boolValue];
77 }
78 else if ([key isEqualToString:@"com.apple.security.files.bookmarks.document-scope"]) {
79 m_d->entitlements[Entitlements::BookmarkScopeDocument] = [value boolValue];
80 }
81 }
82 }
83
84 if (dynamicInfo != NULL) {
85 CFRelease(dynamicInfo);
86 }
87 if (kritaRef != NULL) {
88 CFRelease(kritaRef);
89 }
90
91 return;
92}
float value(const T *src, size_t ch)

References BookmarkScopeApp, BookmarkScopeDocument, m_d, Sandbox, and value().

◆ sandbox()

bool KisMacosEntitlements::sandbox ( )

Definition at line 100 of file KisMacosEntitlements.mm.

101{
102 return m_d->entitlements.contains(Entitlements::Sandbox);
103}

References m_d, and Sandbox.

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisMacosEntitlements::m_d
private

Definition at line 43 of file KisMacosEntitlements.h.


The documentation for this class was generated from the following files: