| | |
| | | |
| | | import org.apache.commons.codec.binary.Base64; |
| | | import org.apache.sshd.common.SshException; |
| | | import org.apache.sshd.common.util.Buffer; |
| | | import org.apache.sshd.common.util.buffer.Buffer; |
| | | import org.apache.sshd.common.util.buffer.ByteArrayBuffer; |
| | | import org.eclipse.jgit.lib.Constants; |
| | | |
| | | import com.gitblit.Constants.AccessPermission; |
| | | import com.gitblit.utils.StringUtils; |
| | | import com.google.common.base.Joiner; |
| | | |
| | | /** |
| | | * Class that encapsulates a public SSH key and it's metadata. |
| | |
| | | private AccessPermission permission; |
| | | |
| | | public SshKey(String data) { |
| | | this.rawData = data; |
| | | // strip out line breaks (issue-571) |
| | | this.rawData = Joiner.on("").join(data.replace("\r\n", "\n").split("\n")); |
| | | this.permission = AccessPermission.PUSH; |
| | | } |
| | | |
| | |
| | | } |
| | | final byte[] bin = Base64.decodeBase64(Constants.encodeASCII(parts[1])); |
| | | try { |
| | | publicKey = new Buffer(bin).getRawPublicKey(); |
| | | publicKey = new ByteArrayBuffer(bin).getRawPublicKey(); |
| | | } catch (SshException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | public String getRawData() { |
| | | if (rawData == null && publicKey != null) { |
| | | // build the raw data manually from the public key |
| | | Buffer buf = new Buffer(); |
| | | Buffer buf = new ByteArrayBuffer(); |
| | | |
| | | // 1: identify the algorithm |
| | | buf.putRawPublicKey(publicKey); |