module Certificates
Utilities for parsing PEM-encoded certificates.
Definitions
CERTIFICATE_PATTERN = /-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----/m
Matches individual certificates in a PEM bundle.
def self.parse(certificate_bundle)
Parse a PEM-encoded certificate bundle into individual certificates.
Signature
-
parameter
certificate_bundleString One or more certificates encoded as PEM.
-
returns
Array(String) The individual PEM-encoded certificates in their original order.
-
raises
ArgumentError If the bundle does not contain any certificates.
-
raises
TypeError If the bundle is not a string.
Implementation
def self.parse(certificate_bundle)
unless certificate_bundle.is_a?(String)
raise TypeError, "The certificate bundle must be provided as a string!"
end
certificates = certificate_bundle.scan(CERTIFICATE_PATTERN)
unless certificates.any?
raise ArgumentError, "The certificate bundle does not contain any certificates!"
end
return certificates
end