Although in pypy compatibility list says the M2Crypto is supported,
but I got segmentation fault
after run less than 100 times in a loop.
my code similar as below:
TIMES = 1000
def main():
csr_b64 = 'MIICpjCCAY4CAQAwYTELMAkGA1UEBhMCVFcxETAPBgNVBAMMCHRlc3QuY29tMQ0wCwYDVQQHDAREYWFuMRAwDgYDVQQKDAd0ZXN0MTIzMQwwCgYDVQQIDANUUEUxEDAOBgNVBAsMB3Rlc3QxMjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9oICQhxQXBUEoPZZIvtlh5j+D7UeczK7MeVRXAlvw1s+ByhnFZsay8EtsV5DmhSl2w3y/qAIlZGdhqsCsNcK1RrE/eMXrrQ+pdRDZdrktqZUygniRD7kDRZRmqgh8+4eEz8sw1I52V/oW98M3yQBKN1gTCYO1bJiWG7PcM4b0fNqEkZQg6lwNyZo710dpu37kOHm1G0FFKtqTCmyYeuhRJVru/QWpvRaBnPZcxHlSfSv+ye0DKnJ0tQkBjL4PWsVOlPoJNp9gZJ0k9Xtfoj75ypa42LAp4HE61hpZw+TIjHW97tVxhrgL4LvjhPXYntGq0TrIold2/TfJ7reSf13BAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEARNeF8Kkn9pZC6pNuEnYfrtoh2HUJB9VX6nuTWnvJDSh9DG2we++Iaq6OQIVl5MBoamm4xdWYKE8UK9MZ5JvXGcXMrOoI4xAjvsdxMylFQ/bH3Fbv6DA4NOPsQidTEpEPLqslPXlTwV3dbL/+hBzjVtDsg/BeAOO4be2X9DdM+Du0tycROGfBVbObNW/+BpHhnyyr0qs6/wkdIE6ppjrCiv7HM1pZe/l8Po9Ej5z368y6tdL+4PCrVc/AnWiyLtp9QW6krqn/0vgReO7dbzrMB79FUBV1K9XxlWOZDpI2UcW8biOsrUJC3AQZwR0KIyi+YsVmoMHSxY2pfaRMjPT6kQ=='
# csr_b64 = 'abc'
for i in xrange(TIMES):
csr = convert_csr_b64_to_csr(csr_b64)
domain_name = csr.get_subject().CN
print("%s: domain_name: %s" % (i, domain_name))
import time
time.sleep(10)
def convert_csr_b64_to_csr(csr_b64):
from M2Crypto import X509
import textwrap
csr_pem = textwrap.fill(csr_b64, 64)
csr_pem = ('-----BEGIN CERTIFICATE REQUEST-----\n' +
csr_pem +
'\n-----END CERTIFICATE REQUEST-----')
csr = X509.load_request_string(csr_pem, X509.FORMAT_PEM)
return csr
if __name__ == "__main__":
main()
environment tried:
- Mac OS X, pypy:2.4.0, SWIG:3.0.2
- Centos 6, pypy:2.4.0, SWIG:1.3.40
- M2Crypto==0.22.3
Thanks for any advise :)