ruby/ruby · error · OpenSSL::X509::NameError
invalid pair: #{str}
Error message
invalid pair: #{str} What it means
Error "invalid pair: #{str}" thrown in ruby/ruby.
Source
Thrown at ext/openssl/lib/openssl/x509.rb:232
QuoteChar = /[^\\"]/
AttributeType = /[a-zA-Z][0-9a-zA-Z]*|[0-9]+(?:\.[0-9]+)*/
AttributeValue = /
(?!["#])((?:#{StringChar}|#{Pair})*)|
\#(#{HexString})|
"((?:#{QuoteChar}|#{Pair})*)"
/x
TypeAndValue = /\A(#{AttributeType})=#{AttributeValue}/
module_function
def expand_pair(str)
return nil unless str
return str.gsub(Pair){
pair = $&
case pair.size
when 2 then pair[1,1]
when 3 then Integer("0x#{pair[1,2]}").chr
else raise OpenSSL::X509::NameError, "invalid pair: #{str}"
end
}
end
def expand_hexstring(str)
return nil unless str
der = str.gsub(HexPair){$&.to_i(16).chr }
a1 = OpenSSL::ASN1.decode(der)
return a1.value, a1.tag
end
def expand_value(str1, str2, str3)
value = expand_pair(str1)
value, tag = expand_hexstring(str2) unless value
value = expand_pair(str3) unless value
return value, tag
end
View on GitHub (pinned to 0e5b888e1c)
When it happens
Trigger: Thrown at ext/openssl/lib/openssl/x509.rb:232 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruby/ruby@0e5b888e1c (2026-08-21).
Data as JSON: /api/errors/b5a83b29d68bfc04.
Report an issue: GitHub.