ios-cert-enrollment 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: