diff -r 000000000000 -r 6474c204b198 mobile/android/base/browserid/SigningPrivateKey.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobile/android/base/browserid/SigningPrivateKey.java Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,41 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.browserid; + +import java.security.GeneralSecurityException; + +import org.mozilla.gecko.sync.ExtendedJSONObject; + +public interface SigningPrivateKey { + /** + * Return the JSON Web Token "alg" header corresponding to this private key. + *
+ * The header is used when formatting web tokens, and generally denotes the + * algorithm and an ad-hoc encoding of the key size. + * + * @return header. + */ + public String getAlgorithm(); + + /** + * Generate a JSON representation of a private key. + *
+ * This should only be used for debugging. No private keys should go over + * the wire at any time. + * + * @param privateKey + * to represent. + * @return JSON representation. + */ + public ExtendedJSONObject toJSONObject(); + + /** + * Sign a message. + * @param message to sign. + * @return signature. + * @throws GeneralSecurityException + */ + public byte[] signMessage(byte[] message) throws GeneralSecurityException; +}