001// SPDX-FileCopyrightText: 2021 Paul Schaub <vanitasvitae@fsfe.org> 002// 003// SPDX-License-Identifier: Apache-2.0 004 005package sop.operation; 006 007import java.io.ByteArrayInputStream; 008import java.io.InputStream; 009 010import sop.Ready; 011import sop.enums.ArmorLabel; 012import sop.exception.SOPGPException; 013 014public interface Armor { 015 016 /** 017 * Overrides automatic detection of label. 018 * 019 * @param label armor label 020 * @return builder instance 021 */ 022 Armor label(ArmorLabel label) throws SOPGPException.UnsupportedOption; 023 024 /** 025 * Armor the provided data. 026 * 027 * @param data input stream of unarmored OpenPGP data 028 * @return armored data 029 */ 030 Ready data(InputStream data) throws SOPGPException.BadData; 031 032 /** 033 * Armor the provided data. 034 * 035 * @param data unarmored OpenPGP data 036 * @return armored data 037 */ 038 default Ready data(byte[] data) throws SOPGPException.BadData { 039 return data(new ByteArrayInputStream(data)); 040 } 041}