Example usage for org.bouncycastle.bcpg ArmoredInputStream getArmorHeaders

List of usage examples for org.bouncycastle.bcpg ArmoredInputStream getArmorHeaders

Introduction

In this page you can find the example usage for org.bouncycastle.bcpg ArmoredInputStream getArmorHeaders.

Prototype

public String[] getArmorHeaders() 

Source Link

Document

Return the armor headers (the lines after the armor header line),

Usage

From source file:org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyOperation.java

License:Open Source License

private ArmorHeaders parseArmorHeaders(InputStream in, OperationLog log, int indent) {
    ArmorHeaders armorHeaders = new ArmorHeaders();

    // If the input stream is armored, and there is a charset specified, take a note for later
    // https://tools.ietf.org/html/rfc4880#page56
    if (in instanceof ArmoredInputStream) {
        ArmoredInputStream aIn = (ArmoredInputStream) in;
        if (aIn.getArmorHeaders() != null) {
            for (String header : aIn.getArmorHeaders()) {
                String[] pieces = header.split(":", 2);
                if (pieces.length != 2 || TextUtils.isEmpty(pieces[0]) || TextUtils.isEmpty(pieces[1])) {
                    continue;
                }/*w w w . j  a v a2 s  . c o  m*/

                switch (pieces[0].toLowerCase()) {
                case "charset": {
                    armorHeaders.charset = pieces[1].trim();
                    break;
                }
                case "backupversion": {
                    try {
                        armorHeaders.backupVersion = Integer.valueOf(pieces[1].trim());
                    } catch (NumberFormatException e) {
                        continue;
                    }
                    break;
                }
                default: {
                    // continue;
                }
                }
            }
            if (armorHeaders.charset != null) {
                log.add(LogType.MSG_DC_CHARSET, indent, armorHeaders.charset);
            }
            if (armorHeaders.backupVersion != null) {
                log.add(LogType.MSG_DC_BACKUP_VERSION, indent, Integer.toString(armorHeaders.backupVersion));
            }
        }
    }

    return armorHeaders;
}