{"record":{"id":"b5a83b29d68bfc04","repo":"ruby/ruby","slug":"invalid-pair-str","errorCode":null,"errorMessage":"invalid pair: #{str}","messagePattern":"invalid pair: #(.+?)","errorType":"exception","errorClass":"OpenSSL::X509::NameError","httpStatus":null,"severity":"error","filePath":"ext/openssl/lib/openssl/x509.rb","lineNumber":232,"sourceCode":"        QuoteChar = /[^\\\\\"]/\n        AttributeType = /[a-zA-Z][0-9a-zA-Z]*|[0-9]+(?:\\.[0-9]+)*/\n        AttributeValue = /\n          (?![\"#])((?:#{StringChar}|#{Pair})*)|\n          \\#(#{HexString})|\n          \"((?:#{QuoteChar}|#{Pair})*)\"\n        /x\n        TypeAndValue = /\\A(#{AttributeType})=#{AttributeValue}/\n\n        module_function\n\n        def expand_pair(str)\n          return nil unless str\n          return str.gsub(Pair){\n            pair = $&\n            case pair.size\n            when 2 then pair[1,1]\n            when 3 then Integer(\"0x#{pair[1,2]}\").chr\n            else raise OpenSSL::X509::NameError, \"invalid pair: #{str}\"\n            end\n          }\n        end\n\n        def expand_hexstring(str)\n          return nil unless str\n          der = str.gsub(HexPair){$&.to_i(16).chr }\n          a1 = OpenSSL::ASN1.decode(der)\n          return a1.value, a1.tag\n        end\n\n        def expand_value(str1, str2, str3)\n          value = expand_pair(str1)\n          value, tag = expand_hexstring(str2) unless value\n          value = expand_pair(str3) unless value\n          return value, tag\n        end\n","sourceCodeStart":214,"sourceCodeEnd":250,"githubUrl":"https://github.com/ruby/ruby/blob/0e5b888e1c355f3f728f2659f085820937dada48/ext/openssl/lib/openssl/x509.rb#L214-L250","documentation":"Error \"invalid pair: #{str}\" thrown in ruby/ruby.","triggerScenarios":"Thrown at ext/openssl/lib/openssl/x509.rb:232 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0e5b888e1c355f3f728f2659f085820937dada48","analyzedAt":"2026-08-21T14:25:43.473Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}