Since i was facing unrecognised algorithm crash, I did the patching as mentioned here: http://erlang.org/pipermail/erlang-questions/2015-June/084870.html
The CRASH no longer appears but i do not get any APNS push notofications even after that. I have the sandbox environment at my end.
when i run on the ejabberd shell:
mod_mymodule:get_socket().
I get:
{error,{keyfile,{badmatch,{error,{asn1,{invalid_length,6}}}}}}
My certificate and private RSA key file worked fine for several months until this popped up.
The get_socket() method definition is:
get_socket()->
%%Options
Options = [{certfile, ?Cert}, {keyfile, ?Key}, {mode, binary}],
%%ssl connection
ssl:connect(?Address, ?Port, Options, infinity) .
FYI, I have macros declared like:
-define(Cert,"/opt/ejabberd-14.07/bin/MantuPush/cert.pem").
-define(Key,"/opt/ejabberd-14.07/bin/MantuPush/finalkey.pem").
Note: I havent used the CSR here, since examples do not state it mandatory(Guessing!).
What could be wrong? What is the correct Certificate and Private key contents used with APNS?
Kindly help. Thanks
This is an Erlang bug. Check out our Erlang pull request for quick hack and the discussion on Github: https://github.com/erlang/otp/pull/767
Here is the blog post explaining the issue: https://blog.process-one.net/apple-increasing-security-of-push-service-ahead-of-wwdc/