📄 x500name.java
字号:
package javasec.samples.ch14;// Store an X500 Name and extract its components on demandpublic class X500Name { private String CN, OU, O, L, ST, C; private String name; private char nameChar[]; public X500Name(String s) { if (s == null) throw new IllegalArgumentException("Name can抰 be null"); name = s; } public String getCN() { if (CN == null) CN = parse("CN="); return CN; } public String getOU() { if (OU == null) OU = parse("OU="); return OU; } public String getO() { if (O == null) O = parse("O="); return O; } public String getL() { if (L == null) L = parse("L="); return L; } public String getST() { if (ST == null) ST = parse("ST="); return ST; } public String getC() { if (C == null) C = parse("C="); return C; } // Parse the name for the given target private String parse(String target) { if (nameChar == null) nameChar = name.toCharArray(); char targetChar[] = target.toCharArray(); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] == targetChar[0]) { // Possible match, check further boolean found = true; // At least so far... for (int j = 0; j < targetChar.length; j++) { try { if (nameChar[i + j] != targetChar[j]) { // No match, continue on... found = false; break; } } catch (ArrayIndexOutOfBoundsException aioobe) { // No match, and nothing left in nameChar return null; } } if (found) { int firstPos = i + targetChar.length; int lastPos; int endChar; if (nameChar[firstPos] == 抃"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -