privatebin

package module
v2.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: ISC Imports: 23 Imported by: 0

README

PrivateBin CLI Logo
A powerful CLI for creating and managing PrivateBin pastes with ease.

GitHub License GitHub Tag

Overview

PrivateBin's secure and anonymous paste service is indispensable for many developers and privacy enthusiasts. Recognizing the need for a more efficient way to interact with PrivateBin from the terminal, I developed this CLI tool. It's designed to seamlessly integrate with your workflow, enabling swift creation and management of pastes.

Installation

privatebin can be installed using a prebuilt binary, through package managers, or from source. Follow the instructions below for your preferred method.

Arch Linux

Available on the Arch User Repository (AUR). Install using your favorite AUR helper:

Example Installation:
yay -Sy privatebin-cli

Prebuilt binary

Prebuilt binaries are available for a variety of operating systems and architectures. Visit the latest release page, and scroll down to the Assets section.

  1. Download the archive for the desired edition, operating system, and architecture
  2. Extract the archive
  3. Move the executable to the desired directory
  4. Add this directory to the PATH environment variable
  5. Verify that you have execute permission on the file

Build from Source

  1. Clone the repository:

    git clone https://github.com/gearnode/privatebin.git
    
  2. Navigate to the project directory:

     cd privatebin
    
  3. Build the project (binary and man pages):

     make
    
  4. Install the binary and man pages on your system:

     make install
    

Usage

Create a paste from a file:

cat resume.txt | privatebin create

Display a paste:

privatebin show https://privatebin.net/?420fc9597328c72f#EezApNVTTRUuEkt1jj7r9vSfewLBvUohDSXWuvPEs1bF

Documentation

For detailed information on all CLI commands and features, check out the handbook.

Support

Encountered a bug or have questions? Feel free to open a GitHub issue or contact me directly via email.

License

This project is released under the ISC license. See the LICENSE.txt file for details. It's designed with both openness and freedom of use in mind, but with no warranty as per the ISC standard disclaimer.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AData

type AData struct {
	Spec             Spec
	Formatter        string
	OpenDiscussion   bool
	BurnAfterReading bool
}

func (AData) MarshalJSON

func (adata AData) MarshalJSON() ([]byte, error)

func (*AData) UnmarshalJSON

func (adata *AData) UnmarshalJSON(data []byte) error

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(endpoint url.URL, options ...Option) *Client

func (*Client) CreatePaste

func (c *Client) CreatePaste(
	ctx context.Context,
	data []byte,
	opts CreatePasteOptions,
) (*CreatePasteResult, error)

func (*Client) ShowPaste

func (c *Client) ShowPaste(
	ctx context.Context,
	urlWithMasterKey url.URL,
	opts ShowPasteOptions,
) (*ShowPasteResult, error)

type Comment

type Comment struct {
	CommentID string
	PasteID   string
	ParentID  string
	Nickname  string
	Text      string
}

type CompressionAlgorithm

type CompressionAlgorithm uint8
const (
	CompressionAlgorithmUnknow CompressionAlgorithm = iota
	CompressionAlgorithmNone
	CompressionAlgorithmGZip
)

func (CompressionAlgorithm) MarshalJSON

func (ca CompressionAlgorithm) MarshalJSON() ([]byte, error)

func (CompressionAlgorithm) String

func (ca CompressionAlgorithm) String() string

func (*CompressionAlgorithm) UnmarshalJSON

func (ca *CompressionAlgorithm) UnmarshalJSON(data []byte) error

type CreatePasteOptions

type CreatePasteOptions struct {
	AttachmentName   string
	Formatter        string
	Expire           string
	OpenDiscussion   bool
	BurnAfterReading bool
	Compress         CompressionAlgorithm
	Password         []byte
}

type CreatePasteResult

type CreatePasteResult struct {
	PasteID     string
	PasteURL    url.URL
	DeleteToken string
}

type EncryptionAlgorithm

type EncryptionAlgorithm uint8
const (
	EncryptionAlgorithmUnknow EncryptionAlgorithm = iota
	EncryptionAlgorithmAES
)

func (EncryptionAlgorithm) MarshalJSON

func (ea EncryptionAlgorithm) MarshalJSON() ([]byte, error)

func (EncryptionAlgorithm) String

func (ea EncryptionAlgorithm) String() string

func (*EncryptionAlgorithm) UnmarshalJSON

func (ea *EncryptionAlgorithm) UnmarshalJSON(data []byte) error

type EncryptionMode

type EncryptionMode uint8
const (
	EncryptionModeUnknow EncryptionMode = iota
	EncryptionModeGCM
)

func (EncryptionMode) MarshalJSON

func (em EncryptionMode) MarshalJSON() ([]byte, error)

func (EncryptionMode) String

func (em EncryptionMode) String() string

func (*EncryptionMode) UnmarshalJSON

func (em *EncryptionMode) UnmarshalJSON(data []byte) error

type Option

type Option func(c *Client)

func WithBasicAuth

func WithBasicAuth(username, password string) Option

func WithCustomHeaderField

func WithCustomHeaderField(k, v string) Option

func WithUserAgent

func WithUserAgent(userAgent string) Option

type Paste

type Paste struct {
	Data           []byte
	Attachement    []byte
	AttachmentName string
	MimeType       string
}

func (Paste) MarshalJSON

func (p Paste) MarshalJSON() ([]byte, error)

func (*Paste) UnmarshalJSON

func (p *Paste) UnmarshalJSON(data []byte) error

type ShowPasteOptions

type ShowPasteOptions struct {
	Password    []byte
	ConfirmBurn bool
}

type ShowPasteResult

type ShowPasteResult struct {
	PasteID      string
	CommentCount int
	Paste        Paste
	Comments     []Comment
}

type Spec

type Spec struct {
	IV          []byte
	Salt        []byte
	Iterations  int
	KeySize     int
	TagSize     int
	Algorithm   EncryptionAlgorithm
	Mode        EncryptionMode
	Compression CompressionAlgorithm
}

func (Spec) MarshalJSON

func (spec Spec) MarshalJSON() ([]byte, error)

func (*Spec) UnmarshalJSON

func (spec *Spec) UnmarshalJSON(data []byte) error

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL