2015년 6월 30일 화요일

공인인증서 본인식별 java 코드

다음과 같은 코드를 사용하여 vid 값을 계산한 후 인증서에서 읽어온 vid 값과 비교하여 본인 식별을 할 수 있다.

인자 vid, r, hashType은 인증서에서 읽어온 정보이고 idn은 사용자로 부터 입력받은 값이다.


public static boolean checkVidIntegrity(byte[] vid, String idn, byte[] r, String hashType ) {
            try {
                    DERSequence derSequence = new DERSequence(new ASN1Encodable[] {new DERPrintableString(idn.getBytes()), new DERBitString(r)});

                    byte[] content = derSequence.getDEREncoded();

                    MessageDigest md2 = MessageDigest.getInstance(hashType);
                    md2.update(content);
                    byte[] h2 = md2.digest();
                    md2.reset();
                    md2.update(h2);
                    byte[] vidp2 = md2.digest();

                    System.out.println("frodo core: idn = "+ idn);
                    System.out.println("frodo core: compare vid = " + toHex(vid) + " with vid' = " + toHex(vidp2));

                    return Arrays.equals(vid, vidp2);
            } catch (NoSuchAlgorithmException e) {
                    e.printStackTrace();
                    return false;
            }
}

댓글 없음:

댓글 쓰기