ios-cert-enrollment 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/ios-cert-enrollment/profile.rb +20 -17
- metadata +1 -1
@@ -58,12 +58,10 @@ module IOSCertEnrollment
|
|
58
58
|
end
|
59
59
|
|
60
60
|
|
61
|
-
def
|
61
|
+
def signed_webclip(certificates)
|
62
62
|
|
63
|
-
webclip_payload = general_payload()
|
64
|
-
|
65
63
|
content_payload = general_payload()
|
66
|
-
content_payload['PayloadIdentifier'] = self.identifier+".webclip.
|
64
|
+
content_payload['PayloadIdentifier'] = self.identifier+".webclip.intranet"
|
67
65
|
content_payload['PayloadType'] = "com.apple.webClip.managed" # do not modify
|
68
66
|
|
69
67
|
# strings that show up in UI, customisable
|
@@ -72,25 +70,30 @@ module IOSCertEnrollment
|
|
72
70
|
|
73
71
|
# allow user to remove webclip
|
74
72
|
content_payload['IsRemovable'] = true
|
75
|
-
content_payload['FullScreen'] = true
|
76
73
|
content_payload['Icon'] = self.icon
|
77
|
-
content_payload['Precomposed'] = true
|
78
74
|
# the link
|
79
75
|
content_payload['Label'] = self.display_name
|
80
76
|
content_payload['URL'] = self.url
|
81
77
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
webclip_payload['PayloadOrganization'] = self.display_name
|
87
|
-
webclip_payload['PayloadDisplayName'] = self.display_name
|
88
|
-
webclip_payload['PayloadDescription'] = self.description
|
78
|
+
plist_content_payload = Plist::Emit.dump(content_payload)
|
79
|
+
encrypted_profile = OpenSSL::PKCS7.encrypt(certificates, plist_content_payload, OpenSSL::Cipher::Cipher::new("des-ede3-cbc"), OpenSSL::PKCS7::BINARY)
|
80
|
+
encrypted_content = encrypted_profile.to_der
|
81
|
+
|
89
82
|
|
90
|
-
webclip_payload['PayloadIdentifier'] = self.identifier+".webclip"
|
91
|
-
self.payload = Plist::Emit.dump(webclip_payload)
|
92
|
-
return self
|
93
83
|
|
84
|
+
payload = general_payload()
|
85
|
+
payload['PayloadIdentifier'] = self.identifier+".intranet"
|
86
|
+
payload['PayloadType'] = "Configuration" # do not modify
|
87
|
+
|
88
|
+
# strings that show up in UI, customisable
|
89
|
+
payload['PayloadDisplayName'] = self.display_name
|
90
|
+
payload['PayloadDescription'] = self.description
|
91
|
+
payload['PayloadExpirationDate'] = self.expiration || Date.today + (360 * 10)
|
92
|
+
|
93
|
+
payload['EncryptedPayloadContent'] = StringIO.new(encrypted_content)
|
94
|
+
self.payload = Plist::Emit.dump(payload)
|
95
|
+
puts self.payload
|
96
|
+
return self.sign
|
94
97
|
end
|
95
98
|
|
96
99
|
|
@@ -108,9 +111,9 @@ module IOSCertEnrollment
|
|
108
111
|
payload['EncryptedPayloadContent'] = StringIO.new(encrypted_content)
|
109
112
|
self.payload = Plist::Emit.dump(payload)
|
110
113
|
return self
|
111
|
-
|
112
114
|
end
|
113
115
|
|
116
|
+
|
114
117
|
def sign
|
115
118
|
signed_profile = OpenSSL::PKCS7.sign(SSL.certificate, SSL.key, self.payload, [], OpenSSL::PKCS7::BINARY)
|
116
119
|
return Certificate.new(signed_profile.to_der, "application/x-apple-aspen-config")
|