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.
Files changed (2) hide show
  1. data/lib/ios-cert-enrollment/profile.rb +20 -17
  2. metadata +1 -1
@@ -58,12 +58,10 @@ module IOSCertEnrollment
58
58
  end
59
59
 
60
60
 
61
- def webclip
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.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
- webclip_payload['PayloadContent'] = content_payload
83
- webclip_payload['PayloadType'] = "Configuration"
84
- #client_cert_payload = scep_cert_payload(request, "Client Authentication", "foo");
85
- webclip_payload['PayloadRemovalDisallowed'] = false
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")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ios-cert-enrollment
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: