summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2017-02-19 01:14:24 +0100
committerJules Laplace <jules@okfoc.us>2017-02-19 01:14:24 +0100
commitd6be5583190174bd45c417b934b36e4469ab3441 (patch)
tree86dccac51fe09608b7f8954c05c270530f11155e /lib
parentd3d195470caef02891de58ed25b92a02c088c37d (diff)
new certs
Diffstat (limited to 'lib')
-rw-r--r--lib/okpush/apn.js6
-rw-r--r--lib/okpush/certs/aps_development_cert.pem32
-rw-r--r--lib/okpush/certs/aps_development_key.pem68
-rw-r--r--lib/okpush/certs/aps_production_cert.pem35
-rw-r--r--lib/okpush/certs/aps_production_key.pem71
-rw-r--r--lib/okpush/index.js2
6 files changed, 211 insertions, 3 deletions
diff --git a/lib/okpush/apn.js b/lib/okpush/apn.js
index b6909f6f..febd03bb 100644
--- a/lib/okpush/apn.js
+++ b/lib/okpush/apn.js
@@ -4,8 +4,10 @@ var db = require('./db')
var apnProvider, apnFeedback
function init (config) {
- config.apn.connection.key = config.apn.key
- config.apn.connection.cert = config.apn.cert
+ var apn_config = config.production ? config.apn_production : config.apn_development
+ config.apn = apn_config
+ config.apn.connection.key = apn_config.key
+ config.apn.connection.cert = apn_config.cert
apnProvider = new apn.Provider(config.apn.connection)
}
diff --git a/lib/okpush/certs/aps_development_cert.pem b/lib/okpush/certs/aps_development_cert.pem
new file mode 100644
index 00000000..fdfc2ba0
--- /dev/null
+++ b/lib/okpush/certs/aps_development_cert.pem
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFjTCCBHWgAwIBAgIIcP///sIUbaEwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3Js
+ZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3
+aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMTcwMjE4MTYwNDAxWhcNMTgwMjE4MTYwNDAxWjCBjDEkMCIGCgmSJomT8ixk
+AQEMFHVzLm9rZm9jLnN0b25laXNsYW5kMUIwQAYDVQQDDDlBcHBsZSBEZXZlbG9w
+bWVudCBJT1MgUHVzaCBTZXJ2aWNlczogdXMub2tmb2Muc3RvbmVpc2xhbmQxEzAR
+BgNVBAsMCkM2SlFUUEdKOTcxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtO/TPmNPgqPw6FNIQsg6IU1htEaUsfG7hvMWMxmhLfIz
+YaRaoN++rb+yFHLx9v9LuAox+CBsMjUVeHR0vI2rHf9oQ0fBaxf+hkaWISp6hgpp
+tPahQEsNRk56wFxaPh4m1ybLidYhWCJzPDJUNJDQX7Bk4YZ+tzQIDsVobwYyZtFI
+NtSxi04mZrGy7s5tJKQ8pE++AF7Fo8QJoGfTw/eJIiu2V2khYgt3k1ieXvl0+o+j
+B+zuvHO9fuLfOWa1Bo6Xy1gc0Qz1HALytkx6NYkTJ/vAJamegcKhjH2Z6vukha5U
+RcSybpE2cEjg6I/2LK5ypRiGYtQJWACxRUAdTeYCAQIDAQABo4IB5TCCAeEwHQYD
+VR0OBBYEFFqpdB90hmc8EisSBphK5Q/b1nb3MAkGA1UdEwQCMAAwHwYDVR0jBBgw
+FoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEPBgNVHSAEggEGMIIBAjCB/wYJKoZI
+hvdjZAUBMIHxMIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2Vy
+dGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUg
+dGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m
+IHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0
+aWNlIHN0YXRlbWVudHMuMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3LmFwcGxlLmNv
+bS9hcHBsZWNhLzBNBgNVHR8ERjBEMEKgQKA+hjxodHRwOi8vZGV2ZWxvcGVyLmFw
+cGxlLmNvbS9jZXJ0aWZpY2F0aW9uYXV0aG9yaXR5L3d3ZHJjYS5jcmwwCwYDVR0P
+BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBAGCiqGSIb3Y2QGAwEEAgUAMA0G
+CSqGSIb3DQEBBQUAA4IBAQAGstXORHB9X0+RhRDmbTgfz9iTv7JJnRXDxD294rxG
+Z/CeRDYE+gedxayTieKdcLn7bl+NjyIo2LsX3vr2i7la5CdWt1r1V7Y4mJ1fu3w1
+MTEYEHF7ejd8PI9n2M68p5/qTaqhJ4zI9zKsVXGJUmi9Ta5FNfJiud4OVZbfurN5
+rnyFFCk/kd+5sHgU/KqdnxtKR1DVjGbFqh6YI63Lv3druNJl8SpmTRuK9Vz6wQw3
+idXEj18jbqoADBnjiQuLhyxDxDM8lOjVUAsmALG1t20dFJeSUw61a+8DLoqLJvRg
+X0A8Ssh8FawGy9sSl5s3K9bjFrxLBHyOqZ8dVWeFXZPR
+-----END CERTIFICATE-----
diff --git a/lib/okpush/certs/aps_development_key.pem b/lib/okpush/certs/aps_development_key.pem
new file mode 100644
index 00000000..a1663eef
--- /dev/null
+++ b/lib/okpush/certs/aps_development_key.pem
@@ -0,0 +1,68 @@
+Bag Attributes
+ friendlyName: Apple Development IOS Push Services: us.okfoc.stoneisland
+ localKeyID: 5A A9 74 1F 74 86 67 3C 12 2B 12 06 98 4A E5 0F DB D6 76 F7
+subject=/UID=us.okfoc.stoneisland/CN=Apple Development IOS Push Services: us.okfoc.stoneisland/OU=C6JQTPGJ97/C=US
+issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
+-----BEGIN CERTIFICATE-----
+MIIFjTCCBHWgAwIBAgIIcP///sIUbaEwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3Js
+ZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3
+aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMTcwMjE4MTYwNDAxWhcNMTgwMjE4MTYwNDAxWjCBjDEkMCIGCgmSJomT8ixk
+AQEMFHVzLm9rZm9jLnN0b25laXNsYW5kMUIwQAYDVQQDDDlBcHBsZSBEZXZlbG9w
+bWVudCBJT1MgUHVzaCBTZXJ2aWNlczogdXMub2tmb2Muc3RvbmVpc2xhbmQxEzAR
+BgNVBAsMCkM2SlFUUEdKOTcxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtO/TPmNPgqPw6FNIQsg6IU1htEaUsfG7hvMWMxmhLfIz
+YaRaoN++rb+yFHLx9v9LuAox+CBsMjUVeHR0vI2rHf9oQ0fBaxf+hkaWISp6hgpp
+tPahQEsNRk56wFxaPh4m1ybLidYhWCJzPDJUNJDQX7Bk4YZ+tzQIDsVobwYyZtFI
+NtSxi04mZrGy7s5tJKQ8pE++AF7Fo8QJoGfTw/eJIiu2V2khYgt3k1ieXvl0+o+j
+B+zuvHO9fuLfOWa1Bo6Xy1gc0Qz1HALytkx6NYkTJ/vAJamegcKhjH2Z6vukha5U
+RcSybpE2cEjg6I/2LK5ypRiGYtQJWACxRUAdTeYCAQIDAQABo4IB5TCCAeEwHQYD
+VR0OBBYEFFqpdB90hmc8EisSBphK5Q/b1nb3MAkGA1UdEwQCMAAwHwYDVR0jBBgw
+FoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEPBgNVHSAEggEGMIIBAjCB/wYJKoZI
+hvdjZAUBMIHxMIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2Vy
+dGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUg
+dGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m
+IHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0
+aWNlIHN0YXRlbWVudHMuMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3LmFwcGxlLmNv
+bS9hcHBsZWNhLzBNBgNVHR8ERjBEMEKgQKA+hjxodHRwOi8vZGV2ZWxvcGVyLmFw
+cGxlLmNvbS9jZXJ0aWZpY2F0aW9uYXV0aG9yaXR5L3d3ZHJjYS5jcmwwCwYDVR0P
+BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBAGCiqGSIb3Y2QGAwEEAgUAMA0G
+CSqGSIb3DQEBBQUAA4IBAQAGstXORHB9X0+RhRDmbTgfz9iTv7JJnRXDxD294rxG
+Z/CeRDYE+gedxayTieKdcLn7bl+NjyIo2LsX3vr2i7la5CdWt1r1V7Y4mJ1fu3w1
+MTEYEHF7ejd8PI9n2M68p5/qTaqhJ4zI9zKsVXGJUmi9Ta5FNfJiud4OVZbfurN5
+rnyFFCk/kd+5sHgU/KqdnxtKR1DVjGbFqh6YI63Lv3druNJl8SpmTRuK9Vz6wQw3
+idXEj18jbqoADBnjiQuLhyxDxDM8lOjVUAsmALG1t20dFJeSUw61a+8DLoqLJvRg
+X0A8Ssh8FawGy9sSl5s3K9bjFrxLBHyOqZ8dVWeFXZPR
+-----END CERTIFICATE-----
+Bag Attributes
+ friendlyName: Julian Laplace
+ localKeyID: 5A A9 74 1F 74 86 67 3C 12 2B 12 06 98 4A E5 0F DB D6 76 F7
+Key Attributes: <No Attributes>
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtO/TPmNPgqPw6FNIQsg6IU1htEaUsfG7hvMWMxmhLfIzYaRa
+oN++rb+yFHLx9v9LuAox+CBsMjUVeHR0vI2rHf9oQ0fBaxf+hkaWISp6hgpptPah
+QEsNRk56wFxaPh4m1ybLidYhWCJzPDJUNJDQX7Bk4YZ+tzQIDsVobwYyZtFINtSx
+i04mZrGy7s5tJKQ8pE++AF7Fo8QJoGfTw/eJIiu2V2khYgt3k1ieXvl0+o+jB+zu
+vHO9fuLfOWa1Bo6Xy1gc0Qz1HALytkx6NYkTJ/vAJamegcKhjH2Z6vukha5URcSy
+bpE2cEjg6I/2LK5ypRiGYtQJWACxRUAdTeYCAQIDAQABAoIBAQCbKszDRRGr3II+
+CyX+N446fw0aOClOzRrgKVnRatph98J+qx8Ztaflg27pwIWnJ9s8smmV++At0n5e
+NajjBq9H43/7qu7Bs+sQJjqbqL04dHegvJ0e8P4qXCVDEDBH8z2l51xIEb24wpqG
+djbmeYZpeXGaQugqntGGMV9VT0AsET3sA+LbhO3klIE5j3C+cWOZWKccMjppCSD+
+iA9c8hGdAt/wOWLQ7R15mvqlZZuSd4mIxgprClPN9/SUnk/w3PM8gXBNV1Vz79Cm
+xxiv4BMbobGUtJF/d8vzpSP/M2J5sCc8PhIHjuzhgZTg1pitFdIcxcZxKSW2xYH7
+F51JX1ABAoGBAOnnHNFfj7uZzRqqOzD8De1oLhIJ+Ua1HaoyLcn9YIGD56p+AxCi
+BgjIIAgz0SctbeSQeo7vVspwSR4kxrQsvTfAaZgvxWSAJc3eHkrucgT/qdAWs0fk
+YgWtNXmvmDNo4ZQqfX3rvXPt+ILPB2/pLg/2qfZ5HZRpu355VNO09tzBAoGBAMYH
+vgn/MEd02WGonvCTJO7RTvficJkThP1Z4TDBttfjCvbcFalvHM+0nOhRwTCZcS6H
+oLXkse6wAVNzQP+2GUT/gmvyqfYM18C2BQm6InqnBBfd2bgH1WP2j76XWuOhw5q/
++AjtPnFszIhpusR1PSrsA86+ZuIHzd2DGfpshDVBAoGAdYRfbzZjAa9pZE9JA/hv
+iur/0qJeMs9Ggz9I0CZUeV3rZDaBlbbB72GU7moSWGuzvdV1LiFD6tv1cIarqtSb
+kMpEg2jk9PSJieBiOeWJNce56sms857kPNPkfSni/1lflNCwUjbB7eAPLrGTm/98
+3BpjFGmPmgRxZj7RhrhyG0ECgYB2PxdF5uAQOwC2pLZLVsGd7NOnhsnPTe2CTpH9
+yB4C6SqZ3y78HkHo8KMkwfSGrYj8zLW1BxsMOIKCLvbn+fc60QsypBLCvkZyZv25
+IjEGZgY2rh0cG2lbKFYK61u1QtmG5QwZYHiByAKVjfSc7JiasZVQdTb/zsMpeugf
+NX74QQKBgD4441+lWTadLqDFxE/DQ29QPC5JTwjvCs9O0Aq+7StQ+yXQHSVWP8i1
+t/mUkDIntVUu0b75ZfjR55EvbkEOvPj1rtaVBUaPA5hk/6jAvHwJJWr/Dmu7oBbu
+ELmFAk8FmoL3RIeEHzqbJZ/FR184TGWi8YmooDDMOOv8pYDRsytj
+-----END RSA PRIVATE KEY-----
diff --git a/lib/okpush/certs/aps_production_cert.pem b/lib/okpush/certs/aps_production_cert.pem
new file mode 100644
index 00000000..e3023909
--- /dev/null
+++ b/lib/okpush/certs/aps_production_cert.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGLDCCBRSgAwIBAgIIGH+Bvy4cPa8wDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3Js
+ZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3
+aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMTcwMjE4MTYwNDI1WhcNMTgwMzIwMTYwNDI1WjCBnTEkMCIGCgmSJomT8ixk
+AQEMFHVzLm9rZm9jLnN0b25laXNsYW5kMTIwMAYDVQQDDClBcHBsZSBQdXNoIFNl
+cnZpY2VzOiB1cy5va2ZvYy5zdG9uZWlzbGFuZDETMBEGA1UECwwKQzZKUVRQR0o5
+NzEfMB0GA1UECgwWU3BvcnRzd2VhciBDb21wYW55IFNwYTELMAkGA1UEBhMCVVMw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC079M+Y0+Co/DoU0hCyDoh
+TWG0RpSx8buG8xYzGaEt8jNhpFqg376tv7IUcvH2/0u4CjH4IGwyNRV4dHS8jasd
+/2hDR8FrF/6GRpYhKnqGCmm09qFASw1GTnrAXFo+HibXJsuJ1iFYInM8MlQ0kNBf
+sGThhn63NAgOxWhvBjJm0Ug21LGLTiZmsbLuzm0kpDykT74AXsWjxAmgZ9PD94ki
+K7ZXaSFiC3eTWJ5e+XT6j6MH7O68c71+4t85ZrUGjpfLWBzRDPUcAvK2THo1iRMn
++8AlqZ6BwqGMfZnq+6SFrlRFxLJukTZwSODoj/YsrnKlGIZi1AlYALFFQB1N5gIB
+AgMBAAGjggJzMIICbzAdBgNVHQ4EFgQUWql0H3SGZzwSKxIGmErlD9vWdvcwDAYD
+VR0TAQH/BAIwADAfBgNVHSMEGDAWgBSIJxcJqbYYYIvs67r2R1nFUlSjtzCCARwG
+A1UdIASCARMwggEPMIIBCwYJKoZIhvdjZAUBMIH9MIHDBggrBgEFBQcCAjCBtgyB
+s1JlbGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3Vt
+ZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRl
+cm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFu
+ZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMDUGCCsGAQUFBwIB
+FilodHRwOi8vd3d3LmFwcGxlLmNvbS9jZXJ0aWZpY2F0ZWF1dGhvcml0eTAwBgNV
+HR8EKTAnMCWgI6Ahhh9odHRwOi8vY3JsLmFwcGxlLmNvbS93d2RyY2EuY3JsMA4G
+A1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAjAQBgoqhkiG92NkBgMB
+BAIFADAQBgoqhkiG92NkBgMCBAIFADCBgwYKKoZIhvdjZAYDBgR1MHMMFHVzLm9r
+Zm9jLnN0b25laXNsYW5kMAUMA2FwcAwZdXMub2tmb2Muc3RvbmVpc2xhbmQudm9p
+cDAGDAR2b2lwDCF1cy5va2ZvYy5zdG9uZWlzbGFuZC5jb21wbGljYXRpb24wDgwM
+Y29tcGxpY2F0aW9uMA0GCSqGSIb3DQEBCwUAA4IBAQA/fUg+Q375bqS1fziJt8jw
++b8R7LLARQkMYKsq6/6x5bZJklCllgFR+uy5ahmEvNy+iFDnDW1BL+kkN8rxiwNk
+QJDuxFB1cwmeLw5Yw4XF2XRhnmHNuUOA6Q/no84IeBttlFQWnFdWyUUO3dwqWQZf
+dvpPesXL6XYmNtFUVMwrtBPjvrVBYsfqbnmPdcr+XETtl7+pv7+A5HaTVhF/eEP3
+q6C1YA412IuccQLJTcTBYUbaGfk5eOcJzRwbfetXW+qE0n/fxiw1esoOoiv22yof
+ojLbDM9OPF/zqNfU7+nY5juw5whXDI7lSwUvoYXC80tFf7IdivwPy2DbBonlr0ye
+-----END CERTIFICATE-----
diff --git a/lib/okpush/certs/aps_production_key.pem b/lib/okpush/certs/aps_production_key.pem
new file mode 100644
index 00000000..3fe17b37
--- /dev/null
+++ b/lib/okpush/certs/aps_production_key.pem
@@ -0,0 +1,71 @@
+Bag Attributes
+ friendlyName: Apple Push Services: us.okfoc.stoneisland
+ localKeyID: 5A A9 74 1F 74 86 67 3C 12 2B 12 06 98 4A E5 0F DB D6 76 F7
+subject=/UID=us.okfoc.stoneisland/CN=Apple Push Services: us.okfoc.stoneisland/OU=C6JQTPGJ97/O=Sportswear Company Spa/C=US
+issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
+-----BEGIN CERTIFICATE-----
+MIIGLDCCBRSgAwIBAgIIGH+Bvy4cPa8wDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3Js
+ZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3
+aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMTcwMjE4MTYwNDI1WhcNMTgwMzIwMTYwNDI1WjCBnTEkMCIGCgmSJomT8ixk
+AQEMFHVzLm9rZm9jLnN0b25laXNsYW5kMTIwMAYDVQQDDClBcHBsZSBQdXNoIFNl
+cnZpY2VzOiB1cy5va2ZvYy5zdG9uZWlzbGFuZDETMBEGA1UECwwKQzZKUVRQR0o5
+NzEfMB0GA1UECgwWU3BvcnRzd2VhciBDb21wYW55IFNwYTELMAkGA1UEBhMCVVMw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC079M+Y0+Co/DoU0hCyDoh
+TWG0RpSx8buG8xYzGaEt8jNhpFqg376tv7IUcvH2/0u4CjH4IGwyNRV4dHS8jasd
+/2hDR8FrF/6GRpYhKnqGCmm09qFASw1GTnrAXFo+HibXJsuJ1iFYInM8MlQ0kNBf
+sGThhn63NAgOxWhvBjJm0Ug21LGLTiZmsbLuzm0kpDykT74AXsWjxAmgZ9PD94ki
+K7ZXaSFiC3eTWJ5e+XT6j6MH7O68c71+4t85ZrUGjpfLWBzRDPUcAvK2THo1iRMn
++8AlqZ6BwqGMfZnq+6SFrlRFxLJukTZwSODoj/YsrnKlGIZi1AlYALFFQB1N5gIB
+AgMBAAGjggJzMIICbzAdBgNVHQ4EFgQUWql0H3SGZzwSKxIGmErlD9vWdvcwDAYD
+VR0TAQH/BAIwADAfBgNVHSMEGDAWgBSIJxcJqbYYYIvs67r2R1nFUlSjtzCCARwG
+A1UdIASCARMwggEPMIIBCwYJKoZIhvdjZAUBMIH9MIHDBggrBgEFBQcCAjCBtgyB
+s1JlbGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3Vt
+ZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRl
+cm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFu
+ZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMDUGCCsGAQUFBwIB
+FilodHRwOi8vd3d3LmFwcGxlLmNvbS9jZXJ0aWZpY2F0ZWF1dGhvcml0eTAwBgNV
+HR8EKTAnMCWgI6Ahhh9odHRwOi8vY3JsLmFwcGxlLmNvbS93d2RyY2EuY3JsMA4G
+A1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAjAQBgoqhkiG92NkBgMB
+BAIFADAQBgoqhkiG92NkBgMCBAIFADCBgwYKKoZIhvdjZAYDBgR1MHMMFHVzLm9r
+Zm9jLnN0b25laXNsYW5kMAUMA2FwcAwZdXMub2tmb2Muc3RvbmVpc2xhbmQudm9p
+cDAGDAR2b2lwDCF1cy5va2ZvYy5zdG9uZWlzbGFuZC5jb21wbGljYXRpb24wDgwM
+Y29tcGxpY2F0aW9uMA0GCSqGSIb3DQEBCwUAA4IBAQA/fUg+Q375bqS1fziJt8jw
++b8R7LLARQkMYKsq6/6x5bZJklCllgFR+uy5ahmEvNy+iFDnDW1BL+kkN8rxiwNk
+QJDuxFB1cwmeLw5Yw4XF2XRhnmHNuUOA6Q/no84IeBttlFQWnFdWyUUO3dwqWQZf
+dvpPesXL6XYmNtFUVMwrtBPjvrVBYsfqbnmPdcr+XETtl7+pv7+A5HaTVhF/eEP3
+q6C1YA412IuccQLJTcTBYUbaGfk5eOcJzRwbfetXW+qE0n/fxiw1esoOoiv22yof
+ojLbDM9OPF/zqNfU7+nY5juw5whXDI7lSwUvoYXC80tFf7IdivwPy2DbBonlr0ye
+-----END CERTIFICATE-----
+Bag Attributes
+ friendlyName: Julian Laplace
+ localKeyID: 5A A9 74 1F 74 86 67 3C 12 2B 12 06 98 4A E5 0F DB D6 76 F7
+Key Attributes: <No Attributes>
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAtO/TPmNPgqPw6FNIQsg6IU1htEaUsfG7hvMWMxmhLfIzYaRa
+oN++rb+yFHLx9v9LuAox+CBsMjUVeHR0vI2rHf9oQ0fBaxf+hkaWISp6hgpptPah
+QEsNRk56wFxaPh4m1ybLidYhWCJzPDJUNJDQX7Bk4YZ+tzQIDsVobwYyZtFINtSx
+i04mZrGy7s5tJKQ8pE++AF7Fo8QJoGfTw/eJIiu2V2khYgt3k1ieXvl0+o+jB+zu
+vHO9fuLfOWa1Bo6Xy1gc0Qz1HALytkx6NYkTJ/vAJamegcKhjH2Z6vukha5URcSy
+bpE2cEjg6I/2LK5ypRiGYtQJWACxRUAdTeYCAQIDAQABAoIBAQCbKszDRRGr3II+
+CyX+N446fw0aOClOzRrgKVnRatph98J+qx8Ztaflg27pwIWnJ9s8smmV++At0n5e
+NajjBq9H43/7qu7Bs+sQJjqbqL04dHegvJ0e8P4qXCVDEDBH8z2l51xIEb24wpqG
+djbmeYZpeXGaQugqntGGMV9VT0AsET3sA+LbhO3klIE5j3C+cWOZWKccMjppCSD+
+iA9c8hGdAt/wOWLQ7R15mvqlZZuSd4mIxgprClPN9/SUnk/w3PM8gXBNV1Vz79Cm
+xxiv4BMbobGUtJF/d8vzpSP/M2J5sCc8PhIHjuzhgZTg1pitFdIcxcZxKSW2xYH7
+F51JX1ABAoGBAOnnHNFfj7uZzRqqOzD8De1oLhIJ+Ua1HaoyLcn9YIGD56p+AxCi
+BgjIIAgz0SctbeSQeo7vVspwSR4kxrQsvTfAaZgvxWSAJc3eHkrucgT/qdAWs0fk
+YgWtNXmvmDNo4ZQqfX3rvXPt+ILPB2/pLg/2qfZ5HZRpu355VNO09tzBAoGBAMYH
+vgn/MEd02WGonvCTJO7RTvficJkThP1Z4TDBttfjCvbcFalvHM+0nOhRwTCZcS6H
+oLXkse6wAVNzQP+2GUT/gmvyqfYM18C2BQm6InqnBBfd2bgH1WP2j76XWuOhw5q/
++AjtPnFszIhpusR1PSrsA86+ZuIHzd2DGfpshDVBAoGAdYRfbzZjAa9pZE9JA/hv
+iur/0qJeMs9Ggz9I0CZUeV3rZDaBlbbB72GU7moSWGuzvdV1LiFD6tv1cIarqtSb
+kMpEg2jk9PSJieBiOeWJNce56sms857kPNPkfSni/1lflNCwUjbB7eAPLrGTm/98
+3BpjFGmPmgRxZj7RhrhyG0ECgYB2PxdF5uAQOwC2pLZLVsGd7NOnhsnPTe2CTpH9
+yB4C6SqZ3y78HkHo8KMkwfSGrYj8zLW1BxsMOIKCLvbn+fc60QsypBLCvkZyZv25
+IjEGZgY2rh0cG2lbKFYK61u1QtmG5QwZYHiByAKVjfSc7JiasZVQdTb/zsMpeugf
+NX74QQKBgD4441+lWTadLqDFxE/DQ29QPC5JTwjvCs9O0Aq+7StQ+yXQHSVWP8i1
+t/mUkDIntVUu0b75ZfjR55EvbkEOvPj1rtaVBUaPA5hk/6jAvHwJJWr/Dmu7oBbu
+ELmFAk8FmoL3RIeEHzqbJZ/FR184TGWi8YmooDDMOOv8pYDRsytj
+-----END RSA PRIVATE KEY-----
diff --git a/lib/okpush/index.js b/lib/okpush/index.js
index a509c891..2fe59932 100644
--- a/lib/okpush/index.js
+++ b/lib/okpush/index.js
@@ -6,7 +6,7 @@ var path = require('path')
var passport = require('passport')
var DigestStrategy = require('passport-http').DigestStrategy;
var bodyParser = require('body-parser')
-var OKTemplate = require('../../../app/node_modules/oktemplate')
+var OKTemplate = require('../../node_modules/okcms/app/node_modules/oktemplate')
var apn = require('./apn')
var db = require('./db')