<commit_before><!DOCTYPE html>
<html lang='ko'>
    <head>
        <meta charset='utf-8'>
        <title>Xeit</title>
        <meta name='viewport' content='width=device-width, initial-scale=1.0'>
        <link href='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css' rel='stylesheet'>
        <link href='http://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css' rel='stylesheet'>
        <link href='xeit.css' rel='stylesheet'>
        <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
        <script src='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js'></script>
        <script src='deps/srcdoc-polyfill/srcdoc-polyfill.min.js'></script>
        <script src='xeit.js'></script>
        <script>
            function handleError(e) {
                //HACK: Error와 ErrorEvent의 message가 조금 다름.
                displayError(e.message.replace('Error: ', ''))
                unlockAuthDialog();
                //throw e;
            }

            function displayError(message) {
                $('#auth-password-group').addClass('error');
                $('#auth-password-help').text(message);
            }

            function resetError() {
                $('#auth-password-group').removeClass('error');
                $('#auth-password-help').text('');
            }

            function setupAuthButton(kind, enable) {
                $('#auth-submit').removeClass('btn-primary btn-info btn-danger')
                if (kind == 'open') {
                    $('#auth-submit').addClass('btn-primary').html('<i class="icon-eye-open icon-white"></i> 열어보기');
                } else if (kind == 'wait') {
                    $('#auth-submit').addClass('btn-info').html('<i class="icon-eye-close icon-white"></i> 기다리기');
                } else if (kind == 'return') {
                    $('#auth-submit').addClass('btn-danger').html('<i class="icon-ban-circle icon-white"></i> 돌아가기');
                }

                enable = (typeof enable !== 'undefined') ? enable : true;
                if (enable) {
                    $('#auth-submit').removeProp('disabled').removeClass('disabled');
                } else {
                    $('#auth-submit').prop('disabled', true).addClass('disabled');
                }
            }

            function unlockAuthDialog() {
                $('#auth-spinner').hide();
                $('input#auth-password').removeProp('disabled').focus();
                setupAuthButton('open', true);
            }

            function lockAuthDialog() {
                $('#auth-spinner').show();
                $('input#auth-password').blur();
                $('input#auth-password').prop('disabled', true);
                setupAuthButton('wait', false);
            }

            function setupAuthDialog(sender) {
                $authDialog = $('#auth-dialog').modal({
                    backdrop: 'static',
                    keyboard: false
                }).on('shown', function () {
                    $('input#auth-password').trigger('focus');
                });

                // 발송기관 표시.
                $('#auth-sender-name').val(sender['name']);

                // 지원여부에 따른 인증화면 구성.
                if (sender['support']) {
                    $('#auth-sender-support').addClass('label-success').text('지원');

                    $('input#auth-password').on('blur keyup', resetError)

                    $('#auth-info').addClass('alert-info').html('<strong>걱정마세요!</strong> 비밀번호와 메일 내용을 외부로 전송하거나 저장하지 않아요.');

                    setupAuthButton('open');
                    $('#auth-form').on('submit', function (e) {
                        e.preventDefault();

                        lockAuthDialog();

                        var password = $('input#auth-password').val();
                        xeit.load(
                            password,
                            function (r) {
                                $authDialog.on('hidden', function () {
                                    showMail(r.message);
                                }).modal('hide');
                            },
                            handleError
                        );
                    });
                } else {
                    $('#auth-sender-support').addClass('label-important').text('미지원');

                    $('input#auth-password').prop('disabled', true);

                    $('#auth-info').addClass('alert-error').html('<strong>모르겠어요!</strong> 보안메일이 아니거나 아직 지원하지 않는 형식인 것 같아요.');

                    setupAuthButton('return');
                    $('#auth-form').on('submit', function (e) {
                        e.preventDefault();

                        $authDialog.on('hidden', function () {
                            parent.postMessage('fallback', '*');
                        }).modal('hide');
                    });
                }

                // 비밀번호 설명 표시.
                if (typeof sender['keylen'] !== 'undefined') {
                    $('input#auth-password').prop('placeholder', sender['hint'] + ' (' + sender['keylen'].toString().replace(',', '~') + '자리)')
                                            .prop('pattern', '[0-9]{' + sender['keylen'] + '}');
                } else {
                    $('input#auth-password').prop('placeholder', sender['hint']);
                }
            }

            function loadMail() {
                window.addEventListener('message', function (e) {
                    var html = e.data;
                    xeit.init(
                        html,
                        function (r) {
                            setupAuthDialog(r.sender);
                        },
                        handleError
                    );
                }, false);
                window.parent.postMessage('ready', '*');
            }

            function showMail(message) {
                var $content = $('#mail-content');
                var content = $content[0];

                //HACK: Firefox는 아직 iframe srcdoc 미지원.
                //$mailContent.attr('srcdoc', message);
                srcDoc.set(content, message);

                //HACK: 로딩 지연시 프레임 잘리는 현상 방지.
                $content.height(window.innerHeight);
                $content.load(function () {
                    $content.height(content.contentDocument.documentElement.scrollHeight);
                });

                $('#xeit-nav a[href="#mail"]').tab('show');
            }

            function loadHelp() {
                $('#xeit-nav a[href="#mail"]').remove();
                $('#xeit-nav a[href="#help"]').tab('show');
            }

            $(document).ready(function () {
                if (window.self !== window.top) {
                    loadMail();
                } else {
                    loadHelp();
                }
            });
        </script>
        <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-40224792-1','github.io');ga('send','pageview');</script>
    </head>
    <body>
        <div id='wrap'>
            <div class='navbar navbar-static-top navbar-inverse'>
                <div class='navbar-inner'>
                    <span class='brand'>Xeit</span>
                    <ul id='xeit-nav' class='nav'>
                        <li><a class='disabled' href='#mail' data-toggle='tab'>보안메일</a></li>
                        <li><a href='#help' data-toggle='tab'>도움말</a></li>
                    </ul>
                </div>
            </div>

            <div class='tab-content'>
                <div id='auth' class='tab-pane active'>
                    <div id='auth-dialog' class='modal hide fade'>
                        <div class='modal-header'>
                            <i id='auth-spinner' class='icon-asterisk icon-spin icon-2x pull-right'></i><h3>보안메일</h3>
                        </div>
                        <div class='modal-body'>
                            <form id='auth-form' class='form-horizontal'>
                                <div class='control-group'>
                                    <label class='control-label' for='auth-password'>보낸 곳</label>
                                    <div class='controls'>
                                        <input type='text' id='auth-sender-name' disabled> <span class='help-inline'><span id='auth-sender-support' class='label'></span></span>
                                    </div>
                                </div>
                                <div id='auth-password-group' class='control-group'>
                                    <label class='control-label' for='auth-password'>비밀번호</label>
                                    <div class='controls'>
                                        <input type='password' id='auth-password' required> <span id='auth-password-help' class='help-inline'></span>
                                    </div>
                                </div>
                            </form>
                            <div id='auth-info' class='alert'></div>
                        </div>
                        <div class='modal-footer'>
                            <button type='submit' form='auth-form' id='auth-submit' class='btn'></button>
                        </div>
                    </div>
                </div>
                <div id='mail' class='tab-pane'>
                    <iframe id='mail-content' style='width: 100%; height: 100%; border: 0;'></iframe>
                </div>
                <div id='help' class='tab-pane'>
                    <div class='container-fluid'>
                        <div class='row-fluid'>
                            <section id='faq'>
                                <div class='page-header'>
                                    <h2>FAQ <small>자주 하는 질문</small></h2>
                                </div>
                                <dl>
                                    <dt>이게 뭔가요?</dt>
                                    <dd>
                                        <p><strong>Xeit</strong>는 금융기관들이 보내주는 거래명세서 등의 보안메일을 인터넷 익스플로러가 아닌 사파리나 크롬, 파이어폭스에서도 열어볼 수 있게 해주는 서비스입니다.</p>
                                    </dd>
                                    <dt>왜 필요한거죠?</dt>
                                    <dd>
                                        <p>국내에서 사용하는 대다수의 보안메일은 윈도의 인터넷 익스플로러에 ActiveX 플러그인을 설치해야만 볼 수 있도록 되어 있습니다. 다른 OS나 브라우저를 사용하는 사람들은 볼 수 있는 방법이 없었지요.</p>
                                    </dd>
                                    <dt>어떻게 보는거죠?</dt>
                                    <dd>
                                        <p>인터넷 익스플로러가 아닌 브라우저에서 보안메일의 첨부파일을 열어보면 빈 화면 또는 플러그인 설치 안내 화면이 나오는 것을 많이 보셨을 거에요. 이 상태에서 브라우저에 등록해놓은 <strong>Xeit</strong> 북마클릿을 누르면 비밀번호 입력 화면이 등장하면서 보안메일을 읽을 수 있게 됩니다.
                                        </p>
                                    </dt>
                                    <dt>설치는 어찌하죠?</dt>
                                        <p>일단 웹 브라우저 상단에 북마클릿을 넣을 수 있는 공간이 있는지 확인해보세요. 사파리에서는 책갈피 막대(Bookmarks Bar), 크롬에서는 북마크바(Bookmarks Bar), 파이어폭스에서는 북마크 도구모음(Bookmarks Toolbar)이라고 부르는 곳입니다. 맥이라면 <span class='label'>⌥</span> + <span class='label'>⌘</span> + <span class='label'>B</span>를 눌러서 확인해볼 수도 있습니다. 그 다음에는 아래의 버튼을 끌어 넣으면 됩니다.</p>
                                        <div class='well'>
                                            <p class='text-center'><a href="javascript:(function(){var%20xeit=document.getElementById('xeit');if(xeit){return;}var%20attachment=document.getElementsByTagName('html')[0].outerHTML;var%20_body=document.body;document.body=document.createElement('body');document.body.style.margin=0;document.body.style.padding=0;document.body.style.height='100%25';xeit=document.createElement('iframe');xeit.setAttribute('id','xeit');xeit.setAttribute('src','http://tomyun.github.io/xeit/xeit.html');xeit.style.width='100%25';xeit.style.height='100%25';xeit.style.border=0;document.body.appendChild(xeit);window.addEventListener('message',function(e){switch(e.data){case%20'ready':xeit.contentWindow.postMessage(attachment,'*');break;case%20'fallback':document.body=_body;break;}},false);})();"><button class='btn btn-info' type='button'><i class='icon-bookmark icon-white'></i> Xeit</button></a></p>
                                            <p class='text-center text-info'>이 버튼을 브라우저 상단의 책갈피에 끌어 넣으세요!</p>
                                        </div>
                                    </dd>
                                    <dt>어디서 쓸 수 있죠?</dt>
                                    <dd>
                                        <p>맥에서 사파리(6)를 기준으로 만들었으며 크롬(26)과 파이어폭스(20)에서도 돌아가는 것을 확인하였습니다. 인터넷 익스플로러에서는 확인해보지 못 했네요.</p>
                                    </dd>
                                    <dt>믿을 수 있나요?</dt>
                                    <dd>
                                        <p>설치된 북마클릿을 실행하면 기능을 불러오기 위해 인터넷 연결이 필요하기는 하지만 보안메일 해제를 위한 모든 연산은 브라우저 내에서 순수 JavaScript 기반으로 이루어집니다. 입력하신 비밀번호와 해제된 메일 내용은 브라우저 외부로 유출되지 않으니 걱정하지 않으셔도 됩니다. 참고로 모든 코드는 <a href='https://github.com/tomyun/xeit' target='_blank'>GitHub</a>에 공개되어 있습니다.</p>
                                    </dd>
                                    <dt>어디어디 볼 수 있죠?</dt>
                                    <dd>
                                        <p>대표적인 보안메일 플러그인의 형식을 대부분 지원하지만, 발송기관별로도 조금씩 다른 관계로 아직 확인되지 않은 곳들이 많습니다. 일단 아래 목록 외에는 막아놓은 상태인데요. 최대한 빨리 확인하여 추가하겠습니다.</p>

                                        <table class='table table-condensed table-striped table-hover'>
                                            <thead>
                                                <tr>
                                                    <th>발송기관</th>
                                                    <th>플러그인</th>
                                                    <th>세부유형</th>
                                                    <th>알고리즘</th>
                                                    <th>지원여부</th>
                                                    <th>비고</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                                <tr>
                                                    <td>BC카드</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>INITECH</td>
                                                    <td>SEED, SHA1, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td>농협, 우리은행 등</td>
                                                </tr>
                                                <tr>
                                                    <td>KB국민카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>SEED, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>KT</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>INITECH</td>
                                                    <td>SEED, SHA1, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>KTF</td>
                                                    <td>JX-Mail Enterprise</td>
                                                    <td>DSMail</td>
                                                    <td>RC4, SEED, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>LG U+</td>
                                                    <td>XecureExpress</td>
                                                    <td>?</td>
                                                    <td>?</td>
                                                    <td><i class='icon-time'></i></td>
                                                    <td>확인중</td>
                                                </tr>
                                                <tr>
                                                    <td>NH농협카드</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>PBKDF2</td>
                                                    <td>SEED, HMAC-SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>SKT</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>PBKDF2 / INITECH</td>
                                                    <td>SEED, HMAC-SHA1 / MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>대신증권</td>
                                                    <td>MailDec</td>
                                                    <td>-</td>
                                                    <td>SEED</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>동양생명</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>롯데멤버스카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>?</td>
                                                    <td>?</td>
                                                    <td><i class='icon-time'></i></td>
                                                    <td>확인중</td>
                                                </tr>
                                                <tr>
                                                    <td>병무청</td>
                                                    <td>JX-Mail Enterprise</td>
                                                    <td>DSMail</td>
                                                    <td>RC4, SEED, MD5</td>
                                                    <td><i class='icon-remove'></i></td>
                                                    <td>DRM 플러그인 필요</td>
                                                </tr>
                                                <tr>
                                                    <td>삼성생명</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>삼성카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-remove'></i></td>
                                                    <td>홈페이지 연결 필요</td>
                                                </tr>
                                                <tr>
                                                    <td>신한은행</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>INITECH</td>
                                                    <td>SEED, SHA1, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>신한카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>외환카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>하나은행</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>SEED, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>한국투자증권</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>현대카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>SEED, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </p>
                                    </dd>
                                    <dt>Gmail에서 안 열려요.</dt>
                                    <dd>
                                        <p>Gmail 웹에서는 HTML 첨부파일을 열 때 ActiveX 호출 태그를 모두 제거해버리기 때문에 아무런 내용을 가져올 수 없습니다. 따라서 첨부파일을 다운로드하여 직접 열어주셔야 합니다. IMAP/POP3 등으로 별도의 메일 클라이언트를 사용하시는 경우에는 상관 없을 거예요.</p>
                                    </dd>
                                    <dt>좀 더 알고 싶어요.</dt>
                                    <dd>
                                        <p>궁금한 점이나 하고 싶은 말씀들은 <a href='https://github.com/tomyun/xeit/issues' target='_blank'>이슈</a>로 올려주시거나 <a href='http://twitter.com/tomyun' target='_blank'>@tomyun</a>으로 연락주세요.</p>
                                    </dd>
                                </dl>
                            </section>
                        </div>
                    </div>
                </div>
            </div>
            <div id='push'></div>
        </div>
        <footer id='footer'>
            <div class='container'>
                <p class='text-center muted credit'>
                    &copy; 2013 Team BASA
                </p>
            </div>
        </footer>
    </body>
</html>
<commit_msg>Handle ErrorEvent message on Chrome<commit_after><!DOCTYPE html>
<html lang='ko'>
    <head>
        <meta charset='utf-8'>
        <title>Xeit</title>
        <meta name='viewport' content='width=device-width, initial-scale=1.0'>
        <link href='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css' rel='stylesheet'>
        <link href='http://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css' rel='stylesheet'>
        <link href='xeit.css' rel='stylesheet'>
        <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
        <script src='http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js'></script>
        <script src='deps/srcdoc-polyfill/srcdoc-polyfill.min.js'></script>
        <script src='xeit.js'></script>
        <script>
            function handleError(e) {
                //HACK: Error와 ErrorEvent의 message가 조금 다름.
                displayError(e.message.replace(/(Uncaught )?Error: /, ''))
                unlockAuthDialog();
                //throw e;
            }

            function displayError(message) {
                $('#auth-password-group').addClass('error');
                $('#auth-password-help').text(message);
            }

            function resetError() {
                $('#auth-password-group').removeClass('error');
                $('#auth-password-help').text('');
            }

            function setupAuthButton(kind, enable) {
                $('#auth-submit').removeClass('btn-primary btn-info btn-danger')
                if (kind == 'open') {
                    $('#auth-submit').addClass('btn-primary').html('<i class="icon-eye-open icon-white"></i> 열어보기');
                } else if (kind == 'wait') {
                    $('#auth-submit').addClass('btn-info').html('<i class="icon-eye-close icon-white"></i> 기다리기');
                } else if (kind == 'return') {
                    $('#auth-submit').addClass('btn-danger').html('<i class="icon-ban-circle icon-white"></i> 돌아가기');
                }

                enable = (typeof enable !== 'undefined') ? enable : true;
                if (enable) {
                    $('#auth-submit').removeProp('disabled').removeClass('disabled');
                } else {
                    $('#auth-submit').prop('disabled', true).addClass('disabled');
                }
            }

            function unlockAuthDialog() {
                $('#auth-spinner').hide();
                $('input#auth-password').removeProp('disabled').focus();
                setupAuthButton('open', true);
            }

            function lockAuthDialog() {
                $('#auth-spinner').show();
                $('input#auth-password').blur();
                $('input#auth-password').prop('disabled', true);
                setupAuthButton('wait', false);
            }

            function setupAuthDialog(sender) {
                $authDialog = $('#auth-dialog').modal({
                    backdrop: 'static',
                    keyboard: false
                }).on('shown', function () {
                    $('input#auth-password').trigger('focus');
                });

                // 발송기관 표시.
                $('#auth-sender-name').val(sender['name']);

                // 지원여부에 따른 인증화면 구성.
                if (sender['support']) {
                    $('#auth-sender-support').addClass('label-success').text('지원');

                    $('input#auth-password').on('blur keyup', resetError)

                    $('#auth-info').addClass('alert-info').html('<strong>걱정마세요!</strong> 비밀번호와 메일 내용을 외부로 전송하거나 저장하지 않아요.');

                    setupAuthButton('open');
                    $('#auth-form').on('submit', function (e) {
                        e.preventDefault();

                        lockAuthDialog();

                        var password = $('input#auth-password').val();
                        xeit.load(
                            password,
                            function (r) {
                                $authDialog.on('hidden', function () {
                                    showMail(r.message);
                                }).modal('hide');
                            },
                            handleError
                        );
                    });
                } else {
                    $('#auth-sender-support').addClass('label-important').text('미지원');

                    $('input#auth-password').prop('disabled', true);

                    $('#auth-info').addClass('alert-error').html('<strong>모르겠어요!</strong> 보안메일이 아니거나 아직 지원하지 않는 형식인 것 같아요.');

                    setupAuthButton('return');
                    $('#auth-form').on('submit', function (e) {
                        e.preventDefault();

                        $authDialog.on('hidden', function () {
                            parent.postMessage('fallback', '*');
                        }).modal('hide');
                    });
                }

                // 비밀번호 설명 표시.
                if (typeof sender['keylen'] !== 'undefined') {
                    $('input#auth-password').prop('placeholder', sender['hint'] + ' (' + sender['keylen'].toString().replace(',', '~') + '자리)')
                                            .prop('pattern', '[0-9]{' + sender['keylen'] + '}');
                } else {
                    $('input#auth-password').prop('placeholder', sender['hint']);
                }
            }

            function loadMail() {
                window.addEventListener('message', function (e) {
                    var html = e.data;
                    xeit.init(
                        html,
                        function (r) {
                            setupAuthDialog(r.sender);
                        },
                        handleError
                    );
                }, false);
                window.parent.postMessage('ready', '*');
            }

            function showMail(message) {
                var $content = $('#mail-content');
                var content = $content[0];

                //HACK: Firefox는 아직 iframe srcdoc 미지원.
                //$mailContent.attr('srcdoc', message);
                srcDoc.set(content, message);

                //HACK: 로딩 지연시 프레임 잘리는 현상 방지.
                $content.height(window.innerHeight);
                $content.load(function () {
                    $content.height(content.contentDocument.documentElement.scrollHeight);
                });

                $('#xeit-nav a[href="#mail"]').tab('show');
            }

            function loadHelp() {
                $('#xeit-nav a[href="#mail"]').remove();
                $('#xeit-nav a[href="#help"]').tab('show');
            }

            $(document).ready(function () {
                if (window.self !== window.top) {
                    loadMail();
                } else {
                    loadHelp();
                }
            });
        </script>
        <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-40224792-1','github.io');ga('send','pageview');</script>
    </head>
    <body>
        <div id='wrap'>
            <div class='navbar navbar-static-top navbar-inverse'>
                <div class='navbar-inner'>
                    <span class='brand'>Xeit</span>
                    <ul id='xeit-nav' class='nav'>
                        <li><a class='disabled' href='#mail' data-toggle='tab'>보안메일</a></li>
                        <li><a href='#help' data-toggle='tab'>도움말</a></li>
                    </ul>
                </div>
            </div>

            <div class='tab-content'>
                <div id='auth' class='tab-pane active'>
                    <div id='auth-dialog' class='modal hide fade'>
                        <div class='modal-header'>
                            <i id='auth-spinner' class='icon-asterisk icon-spin icon-2x pull-right'></i><h3>보안메일</h3>
                        </div>
                        <div class='modal-body'>
                            <form id='auth-form' class='form-horizontal'>
                                <div class='control-group'>
                                    <label class='control-label' for='auth-password'>보낸 곳</label>
                                    <div class='controls'>
                                        <input type='text' id='auth-sender-name' disabled> <span class='help-inline'><span id='auth-sender-support' class='label'></span></span>
                                    </div>
                                </div>
                                <div id='auth-password-group' class='control-group'>
                                    <label class='control-label' for='auth-password'>비밀번호</label>
                                    <div class='controls'>
                                        <input type='password' id='auth-password' required> <span id='auth-password-help' class='help-inline'></span>
                                    </div>
                                </div>
                            </form>
                            <div id='auth-info' class='alert'></div>
                        </div>
                        <div class='modal-footer'>
                            <button type='submit' form='auth-form' id='auth-submit' class='btn'></button>
                        </div>
                    </div>
                </div>
                <div id='mail' class='tab-pane'>
                    <iframe id='mail-content' style='width: 100%; height: 100%; border: 0;'></iframe>
                </div>
                <div id='help' class='tab-pane'>
                    <div class='container-fluid'>
                        <div class='row-fluid'>
                            <section id='faq'>
                                <div class='page-header'>
                                    <h2>FAQ <small>자주 하는 질문</small></h2>
                                </div>
                                <dl>
                                    <dt>이게 뭔가요?</dt>
                                    <dd>
                                        <p><strong>Xeit</strong>는 금융기관들이 보내주는 거래명세서 등의 보안메일을 인터넷 익스플로러가 아닌 사파리나 크롬, 파이어폭스에서도 열어볼 수 있게 해주는 서비스입니다.</p>
                                    </dd>
                                    <dt>왜 필요한거죠?</dt>
                                    <dd>
                                        <p>국내에서 사용하는 대다수의 보안메일은 윈도의 인터넷 익스플로러에 ActiveX 플러그인을 설치해야만 볼 수 있도록 되어 있습니다. 다른 OS나 브라우저를 사용하는 사람들은 볼 수 있는 방법이 없었지요.</p>
                                    </dd>
                                    <dt>어떻게 보는거죠?</dt>
                                    <dd>
                                        <p>인터넷 익스플로러가 아닌 브라우저에서 보안메일의 첨부파일을 열어보면 빈 화면 또는 플러그인 설치 안내 화면이 나오는 것을 많이 보셨을 거에요. 이 상태에서 브라우저에 등록해놓은 <strong>Xeit</strong> 북마클릿을 누르면 비밀번호 입력 화면이 등장하면서 보안메일을 읽을 수 있게 됩니다.
                                        </p>
                                    </dt>
                                    <dt>설치는 어찌하죠?</dt>
                                        <p>일단 웹 브라우저 상단에 북마클릿을 넣을 수 있는 공간이 있는지 확인해보세요. 사파리에서는 책갈피 막대(Bookmarks Bar), 크롬에서는 북마크바(Bookmarks Bar), 파이어폭스에서는 북마크 도구모음(Bookmarks Toolbar)이라고 부르는 곳입니다. 맥이라면 <span class='label'>⌥</span> + <span class='label'>⌘</span> + <span class='label'>B</span>를 눌러서 확인해볼 수도 있습니다. 그 다음에는 아래의 버튼을 끌어 넣으면 됩니다.</p>
                                        <div class='well'>
                                            <p class='text-center'><a href="javascript:(function(){var%20xeit=document.getElementById('xeit');if(xeit){return;}var%20attachment=document.getElementsByTagName('html')[0].outerHTML;var%20_body=document.body;document.body=document.createElement('body');document.body.style.margin=0;document.body.style.padding=0;document.body.style.height='100%25';xeit=document.createElement('iframe');xeit.setAttribute('id','xeit');xeit.setAttribute('src','http://tomyun.github.io/xeit/xeit.html');xeit.style.width='100%25';xeit.style.height='100%25';xeit.style.border=0;document.body.appendChild(xeit);window.addEventListener('message',function(e){switch(e.data){case%20'ready':xeit.contentWindow.postMessage(attachment,'*');break;case%20'fallback':document.body=_body;break;}},false);})();"><button class='btn btn-info' type='button'><i class='icon-bookmark icon-white'></i> Xeit</button></a></p>
                                            <p class='text-center text-info'>이 버튼을 브라우저 상단의 책갈피에 끌어 넣으세요!</p>
                                        </div>
                                    </dd>
                                    <dt>어디서 쓸 수 있죠?</dt>
                                    <dd>
                                        <p>맥에서 사파리(6)를 기준으로 만들었으며 크롬(26)과 파이어폭스(20)에서도 돌아가는 것을 확인하였습니다. 인터넷 익스플로러에서는 확인해보지 못 했네요.</p>
                                    </dd>
                                    <dt>믿을 수 있나요?</dt>
                                    <dd>
                                        <p>설치된 북마클릿을 실행하면 기능을 불러오기 위해 인터넷 연결이 필요하기는 하지만 보안메일 해제를 위한 모든 연산은 브라우저 내에서 순수 JavaScript 기반으로 이루어집니다. 입력하신 비밀번호와 해제된 메일 내용은 브라우저 외부로 유출되지 않으니 걱정하지 않으셔도 됩니다. 참고로 모든 코드는 <a href='https://github.com/tomyun/xeit' target='_blank'>GitHub</a>에 공개되어 있습니다.</p>
                                    </dd>
                                    <dt>어디어디 볼 수 있죠?</dt>
                                    <dd>
                                        <p>대표적인 보안메일 플러그인의 형식을 대부분 지원하지만, 발송기관별로도 조금씩 다른 관계로 아직 확인되지 않은 곳들이 많습니다. 일단 아래 목록 외에는 막아놓은 상태인데요. 최대한 빨리 확인하여 추가하겠습니다.</p>

                                        <table class='table table-condensed table-striped table-hover'>
                                            <thead>
                                                <tr>
                                                    <th>발송기관</th>
                                                    <th>플러그인</th>
                                                    <th>세부유형</th>
                                                    <th>알고리즘</th>
                                                    <th>지원여부</th>
                                                    <th>비고</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                                <tr>
                                                    <td>BC카드</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>INITECH</td>
                                                    <td>SEED, SHA1, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td>농협, 우리은행 등</td>
                                                </tr>
                                                <tr>
                                                    <td>KB국민카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>SEED, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>KT</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>INITECH</td>
                                                    <td>SEED, SHA1, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>KTF</td>
                                                    <td>JX-Mail Enterprise</td>
                                                    <td>DSMail</td>
                                                    <td>RC4, SEED, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>LG U+</td>
                                                    <td>XecureExpress</td>
                                                    <td>?</td>
                                                    <td>?</td>
                                                    <td><i class='icon-time'></i></td>
                                                    <td>확인중</td>
                                                </tr>
                                                <tr>
                                                    <td>NH농협카드</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>PBKDF2</td>
                                                    <td>SEED, HMAC-SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>SKT</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>PBKDF2 / INITECH</td>
                                                    <td>SEED, HMAC-SHA1 / MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>대신증권</td>
                                                    <td>MailDec</td>
                                                    <td>-</td>
                                                    <td>SEED</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>동양생명</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>롯데멤버스카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>?</td>
                                                    <td>?</td>
                                                    <td><i class='icon-time'></i></td>
                                                    <td>확인중</td>
                                                </tr>
                                                <tr>
                                                    <td>병무청</td>
                                                    <td>JX-Mail Enterprise</td>
                                                    <td>DSMail</td>
                                                    <td>RC4, SEED, MD5</td>
                                                    <td><i class='icon-remove'></i></td>
                                                    <td>DRM 플러그인 필요</td>
                                                </tr>
                                                <tr>
                                                    <td>삼성생명</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>삼성카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-remove'></i></td>
                                                    <td>홈페이지 연결 필요</td>
                                                </tr>
                                                <tr>
                                                    <td>신한은행</td>
                                                    <td>INISAFE Mail</td>
                                                    <td>INITECH</td>
                                                    <td>SEED, SHA1, MD5</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>신한카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>외환카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>하나은행</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>SEED, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>한국투자증권</td>
                                                    <td>XecureExpress</td>
                                                    <td>PKCS#7</td>
                                                    <td>DES, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                                <tr>
                                                    <td>현대카드</td>
                                                    <td>XecureExpress</td>
                                                    <td>PWD</td>
                                                    <td>SEED, SHA1</td>
                                                    <td><i class='icon-ok'></i></td>
                                                    <td></td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </p>
                                    </dd>
                                    <dt>Gmail에서 안 열려요.</dt>
                                    <dd>
                                        <p>Gmail 웹에서는 HTML 첨부파일을 열 때 ActiveX 호출 태그를 모두 제거해버리기 때문에 아무런 내용을 가져올 수 없습니다. 따라서 첨부파일을 다운로드하여 직접 열어주셔야 합니다. IMAP/POP3 등으로 별도의 메일 클라이언트를 사용하시는 경우에는 상관 없을 거예요.</p>
                                    </dd>
                                    <dt>좀 더 알고 싶어요.</dt>
                                    <dd>
                                        <p>궁금한 점이나 하고 싶은 말씀들은 <a href='https://github.com/tomyun/xeit/issues' target='_blank'>이슈</a>로 올려주시거나 <a href='http://twitter.com/tomyun' target='_blank'>@tomyun</a>으로 연락주세요.</p>
                                    </dd>
                                </dl>
                            </section>
                        </div>
                    </div>
                </div>
            </div>
            <div id='push'></div>
        </div>
        <footer id='footer'>
            <div class='container'>
                <p class='text-center muted credit'>
                    &copy; 2013 Team BASA
                </p>
            </div>
        </footer>
    </body>
</html>

{'fraction_non_alphanumeric': 0.12115465655288664, 'fraction_numerical': 0.0041757652377121405, 'mean_word_length': 0.6726579520697168, 'pattern_counts': {'":': 0, '<': 1063, '<?xml version=': 0, '>': 1063, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 776, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6973716', 'n_tokens_mistral': 13177, 'n_tokens_neox': 14198, 'n_words': 1901}