Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- openssl pkcs12 -in cred.p12 -out cert.pem -nodes -clcerts
- from struct import pack
- from OpenSSL import SSL
- from twisted.internet import reactor
- from twisted.internet.protocol import ClientFactory, Protocol
- from twisted.internet.ssl import ClientContextFactory
- import binascii
- import struct
- APNS_SERVER_HOSTNAME = "gateway.sandbox.push.apple.com"
- APNS_SERVER_PORT = 2195
- APNS_SSL_CERTIFICATE_FILE = "<your ssl certificate.pem>"
- APNS_SSL_PRIVATE_KEY_FILE = "<your ssl private key.pem>"
- DEVICE_TOKEN = "<hexlified device token>"
- MESSAGE = '{"aps":{"alert":"twisted test"}}'
- class APNSClientContextFactory(ClientContextFactory):
- def __init__(self):
- self.ctx = SSL.Context(SSL.SSLv3_METHOD)
- self.ctx.use_certificate_file(APNS_SSL_CERTIFICATE_FILE)
- self.ctx.use_privatekey_file(APNS_SSL_PRIVATE_KEY_FILE)
- def getContext(self):
- return self.ctx
- class APNSProtocol(Protocol):
- def connectionMade(self):
- print "connection made"
- self.sendMessage(binascii.unhexlify(DEVICE_TOKEN), MESSAGE)
- self.transport.loseConnection()
- def sendMessage(self, deviceToken, payload):
- # notification messages are binary messages in network order
- # using the following format:
- # <1 byte command> <2 bytes length><token> <2 bytes length><payload>
- fmt = "!cH32sH%ds" % len(payload)
- command = 'x00'
- msg = struct.pack(fmt, command, 32, deviceToken,
- len(payload), payload)
- print "%s: %s" %(binascii.hexlify(deviceToken), binascii.hexlify(msg))
- self.transport.write(msg)
- class APNSClientFactory(ClientFactory):
- def buildProtocol(self, addr):
- print "Connected to APNS Server %s:%u" % (addr.host, addr.port)
- return APNSProtocol()
- def clientConnectionLost(self, connector, reason):
- print "Lost connection. Reason: %s" % reason
- def clientConnectionFailed(self, connector, reason):
- print "Connection failed. Reason: %s" % reason
- if __name__ == '__main__':
- reactor.connectSSL(APNS_SERVER_HOSTNAME,
- APNS_SERVER_PORT,
- APNSClientFactory(),
- APNSClientContextFactory())
- reactor.run()
- from struct import pack
- from OpenSSL import SSL
- from twisted.internet import reactor
- from twisted.internet.protocol import ClientFactory, Protocol
- from twisted.internet.ssl import ClientContextFactory
- import binascii
- import struct
- APNS_SERVER_HOSTNAME = "gateway.sandbox.push.apple.com"
- APNS_SERVER_PORT = 2195
- APNS_SSL_CERTIFICATE_FILE = "<your ssl certificate.pem>"
- APNS_SSL_PRIVATE_KEY_FILE = "<your ssl private key.pem>"
- DEVICE_TOKEN = "<hexlified device token>"
- MESSAGE = '{"aps":{"alert":"twisted test"}}'
- class APNSClientContextFactory(ClientContextFactory):
- def __init__(self):
- self.ctx = SSL.Context(SSL.SSLv3_METHOD)
- self.ctx.use_certificate_file(APNS_SSL_CERTIFICATE_FILE)
- self.ctx.use_privatekey_file(APNS_SSL_PRIVATE_KEY_FILE)
- def getContext(self):
- return self.ctx
- class APNSProtocol(Protocol):
- def connectionMade(self):
- print "connection made"
- self.sendMessage(binascii.unhexlify(DEVICE_TOKEN), MESSAGE)
- self.transport.loseConnection()
- def sendMessage(self, deviceToken, payload):
- # notification messages are binary messages in network order
- # using the following format:
- # <1 byte command> <2 bytes length><token> <2 bytes length><payload>
- fmt = "!cH32sH%ds" % len(payload)
- command = 'x00'
- msg = struct.pack(fmt, command, 32, deviceToken,
- len(payload), payload)
- print "%s: %s" %(binascii.hexlify(deviceToken), binascii.hexlify(msg))
- self.transport.write(msg)
- class APNSClientFactory(ClientFactory):
- def buildProtocol(self, addr):
- print "Connected to APNS Server %s:%u" % (addr.host, addr.port)
- return APNSProtocol()
- def clientConnectionLost(self, connector, reason):
- print "Lost connection. Reason: %s" % reason
- def clientConnectionFailed(self, connector, reason):
- print "Connection failed. Reason: %s" % reason
- if __name__ == '__main__':
- reactor.connectSSL(APNS_SERVER_HOSTNAME,
- APNS_SERVER_PORT,
- APNSClientFactory(),
- APNSClientContextFactory())
- reactor.run()
- from struct import pack
- from OpenSSL import SSL
- from twisted.internet import reactor
- from twisted.internet.protocol import ClientFactory, Protocol
- from twisted.internet.ssl import ClientContextFactory
- import binascii
- import struct
- APNS_SERVER_HOSTNAME = "gateway.sandbox.push.apple.com"
- APNS_SERVER_PORT = 2195
- APNS_SSL_CERTIFICATE_FILE = "<your ssl certificate.pem>"
- APNS_SSL_PRIVATE_KEY_FILE = "<your ssl private key.pem>"
- DEVICE_TOKEN = "<hexlified device token>"
- MESSAGE = '{"aps":{"alert":"twisted test"}}'
- class APNSClientContextFactory(ClientContextFactory):
- def __init__(self):
- self.ctx = SSL.Context(SSL.SSLv3_METHOD)
- self.ctx.use_certificate_file(APNS_SSL_CERTIFICATE_FILE)
- self.ctx.use_privatekey_file(APNS_SSL_PRIVATE_KEY_FILE)
- def getContext(self):
- return self.ctx
- class APNSProtocol(Protocol):
- def connectionMade(self):
- print "connection made"
- self.sendMessage(binascii.unhexlify(DEVICE_TOKEN), MESSAGE)
- self.transport.loseConnection()
- def sendMessage(self, deviceToken, payload):
- # notification messages are binary messages in network order
- # using the following format:
- # <1 byte command> <2 bytes length><token> <2 bytes length><payload>
- fmt = "!cH32sH%ds" % len(payload)
- command = 'x00'
- msg = struct.pack(fmt, command, 32, deviceToken,
- len(payload), payload)
- print "%s: %s" %(binascii.hexlify(deviceToken), binascii.hexlify(msg))
- self.transport.write(msg)
- class APNSClientFactory(ClientFactory):
- def buildProtocol(self, addr):
- print "Connected to APNS Server %s:%u" % (addr.host, addr.port)
- return APNSProtocol()
- def clientConnectionLost(self, connector, reason):
- print "Lost connection. Reason: %s" % reason
- def clientConnectionFailed(self, connector, reason):
- print "Connection failed. Reason: %s" % reason
- if __name__ == '__main__':
- reactor.connectSSL(APNS_SERVER_HOSTNAME,
- APNS_SERVER_PORT,
- APNSClientFactory(),
- APNSClientContextFactory())
- reactor.run()
- from struct import pack
- from OpenSSL import SSL
- from twisted.internet import reactor
- from twisted.internet.protocol import ClientFactory, Protocol
- from twisted.internet.ssl import ClientContextFactory
- APNS_SERVER_HOSTNAME = "<insert the push hostname from your iPhone developer portal>"
- APNS_SERVER_PORT = 2195
- APNS_SSL_CERTIFICATE_FILE = "<your ssl certificate.pem>"
- APNS_SSL_PRIVATE_KEY_FILE = "<your ssl private key.pem>"
- class APNSClientContextFactory(ClientContextFactory):
- def __init__(self):
- self.ctx = SSL.Context(SSL.SSLv3_METHOD)
- self.ctx.use_certificate_file(APNS_SSL_CERTIFICATE_FILE)
- self.ctx.use_privatekey_file(APNS_SSL_PRIVATE_KEY_FILE)
- def getContext(self):
- return self.ctx
- class APNSProtocol(Protocol):
- def sendMessage(self, deviceToken, payload):
- # notification messages are binary messages in network order
- # using the following format:
- # <1 byte command> <2 bytes length><token> <2 bytes length><payload>
- fmt = "!cH32cH%dc" % len(payload)
- command = 0
- msg = struct.pack(fmt, command, deviceToken,
- len(payload), payload)
- self.transport.write(msg)
- class APNSClientFactory(ClientFactory):
- def buildProtocol(self, addr):
- print "Connected to APNS Server %s:%u" % (addr.host, addr.port)
- return APNSProtocol()
- def clientConnectionLost(self, connector, reason):
- print "Lost connection. Reason: %s" % reason
- def clientConnectionFailed(self, connector, reason):
- print "Connection failed. Reason: %s" % reason
- if __name__ == '__main__':
- reactor.connectSSL(APNS_SERVER_HOSTNAME,
- APNS_SERVER_PORT,
- APNSClientFactory(),
- APNSClientContextFactory())
- reactor.run()
Add Comment
Please, Sign In to add comment