GitHub - amazon-archives/certlint: X.509 certificate lint
- bin 修复没有的UTF-8字符串的匹配问题
- data 更新数据文件
- ext 再生源
- lib 在名称比较路程上添加注释
- spec Gemize
- .gitignore Gemize
- .rubocop.yml 引入证书错误检查工具
- CODE_OF_CONDUCT.md Gemize
- Gemfile Gemize
- LICENSE 初始提交
- README.md 添加提供者
- Rakefile Gemize
- certlint.gemspec 添加版本
- make-names.rb 更新数据
- update-data.sh 通过HTTPS请求所有数据的URL
1. README.md:证书目录说明
说明:.md全程markdown,是一种标记语言,可以用记事本、EditPlus等等文本编辑器打开
2. LICENSE:Apache-2.0 License(阿帕奇许可证)
3. .rubocop.yml:
Metrics/LineLength: #----auto-correct Enabled: false
说明:
1)YAML是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用
2)YAML的语法比较简洁直观,特点是使用空格来表达层次结构,其最大的优势在于数据结构方面的表达,所以YAML更多应用于编写配置文件,其文件一般以.yml为后缀
3)语法部分见:一文看懂 YAML | 菜鸟小栈 (chenpipi.cn)
4)搞定Ruby中的bug:Rubocop是一个代码分析器。它有很多的“Cops",每个”Cops"都是一种不同的检测,都能在代码中体现出来。Cops能够被添加和配置。管理所有选项的最佳方法是使用.rubocop.yml配置文件,即上述框中的代码。它可以集成到你喜欢的编辑器中,有许多的编辑器插件,类似SublimeText。
4.make-names.rb:
1 #!/usr/bin/ruby 2 3 # Prefill with the CA/B Forum attributes 4 attrs = { 5 '1.3.6.1.4.1.311.60.2.1.1' => 'jurisdictionLocalityName', 6 '1.3.6.1.4.1.311.60.2.1.2' => 'jurisdictionStateOrProvinceName', 7 '1.3.6.1.4.1.311.60.2.1.3' => 'jurisdictionCountryName' 8 } 9 10 IO.foreach(ARGV[0]) do |line| 11 p = line.strip.split(',') 12 next unless p[1] == 'A' && p[2] =~ /^[0-2]/ 13 oid = p[2].strip.split('.').map(&:strip).join('.') 14 name = p[0] 15 if !attrs.key? oid 16 attrs[oid] = name 17 elsif attrs[oid].length < name.length 18 attrs[oid] = name 19 end 20 end 21 22 def sort_oid(ao, bo) 23 a = ao.split('.').map(&:to_i) 24 b = bo.split('.').map(&:to_i) 25 p = 0 26 a.each do |seg| 27 return 1 if b[p].nil? 28 return 1 if seg > b[p] 29 return -1 if seg < b[p] 30 p += 1 31 end 32 if !b[p].nil? 33 return -1 34 end 35 0 36 end 37 38 39 attrs.keys.sort{|a,b|sort_oid(a,b)}.each do |oid| 40 puts "'#{oid}' => '#{attrs[oid]}'," 41 end
说明:
1).rb是一个包含Ruby程序/脚本源代码的文本文件
2)
说明:
1)Ruby环境在Linux中的安装 :https://blog.csdn.net/qq_41690477/article/details/82750530
2)Ruby在Linux中的运行:https://jingyan.baidu.com/article/3065b3b6b32d83becef8a442.html