GPG Keys

A GPGKey object on Files.com is used to securely store both the private and public keys associated with a GPG (GNU Privacy Guard) encryption key pair. This object enables the encryption and decryption of data using GPG, allowing you to protect sensitive information.

The private key is kept confidential and is used for decrypting data or signing messages to prove authenticity, while the public key is used to encrypt messages that only the owner of the private key can decrypt.

By storing both keys together in a GPGKey object, Files.com makes it easier to understand encryption operations, ensuring secure and efficient handling of encrypted data within the platform.

List GPG Keys

SDK Method

gpgkey.List()

Return Object

[]*GpgKey

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.

GpgKeyListParams Fields

FieldDescription
UserId
int64
User ID. Provide a value of 0 to operate the current session's user.

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    gpg_key "github.com/Files-com/files-sdk-go/v3/gpgkey"
)

gpgKeyIterator, err := gpg_key.List(files_sdk.GpgKeyListParams{UserId: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

for gpgKeyIterator.Next() {
    gpgKey := gpgKeyIterator.gpgKey()
}
err = gpgKeyIterator.Err()
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Show GPG Key

SDK Method

gpgkey.Find()

Return Object

GpgKey

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.

GpgKeyFindParams Fields

FieldDescription
Id
int64
Required
Gpg Key ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    gpg_key "github.com/Files-com/files-sdk-go/v3/gpgkey"
)

gpgKey, err := gpg_key.Find(files_sdk.GpgKeyFindParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Create GPG Key

SDK Method

gpgkey.Create()

Return Object

GpgKey

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.

GpgKeyCreateParams Fields

FieldDefaultDescription
UserId
int64
User ID. Provide a value of 0 to operate the current session's user.
PartnerId
int64
Partner ID who owns this GPG Key, if applicable.
PublicKey
string
The GPG public key
PrivateKey
string
The GPG private key
PrivateKeyPassword
string
The GPG private key password
Name
string
Required
GPG key name.
WorkspaceId
int64
0Workspace ID (0 for default workspace).
GenerateExpiresAt
string
Expiration date of the key. Used for the generation of the key. Will be ignored if generate_keypair is false.
GenerateKeypair
boolean
If true, generate a new GPG key pair. Can not be used with public_key/private_key
GenerateFullName
string
Full name of the key owner. Used for the generation of the key. Will be ignored if generate_keypair is false.
GenerateEmail
string
Email address of the key owner. Used for the generation of the key. Will be ignored if generate_keypair is false.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    gpg_key "github.com/Files-com/files-sdk-go/v3/gpgkey"
)

gpgKey, err := gpg_key.Create(files_sdk.GpgKeyCreateParams{Name: "key name"})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Update GPG Key

SDK Method

gpgkey.Update()

Return Object

GpgKey

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.

GpgKeyUpdateParams Fields

FieldDescription
Id
int64
Required
Gpg Key ID.
PartnerId
int64
Partner ID who owns this GPG Key, if applicable.
PublicKey
string
The GPG public key
PrivateKey
string
The GPG private key
PrivateKeyPassword
string
The GPG private key password
Name
string
GPG key name.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    gpg_key "github.com/Files-com/files-sdk-go/v3/gpgkey"
)

gpgKey, err := gpg_key.Update(files_sdk.GpgKeyUpdateParams{
  Id: 1,
  PartnerId: 1
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Delete GPG Key

SDK Method

gpgkey.Delete()

Return Object

No return value.

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Folder Admin permissions.

GpgKeyDeleteParams Fields

FieldDescription
Id
int64
Required
Gpg Key ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    gpg_key "github.com/Files-com/files-sdk-go/v3/gpgkey"
)

err := gpg_key.Delete(files_sdk.GpgKeyDeleteParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

The GpgKey Object

Some of the methods above return a GpgKey object. The attributes of this object are listed below.

AttributeDescription
Id
int64
GPG key ID.
WorkspaceId
int64
Workspace ID (0 for default workspace).
ExpiresAt
date-time
GPG key expiration date.
Name
string
GPG key name.
PartnerId
int64
Partner ID who owns this GPG Key, if applicable.
PartnerName
string
Name of the Partner who owns this GPG Key, if applicable.
UserId
int64
User ID who owns this GPG Key, if applicable.
PublicKeyMd5
string
MD5 hash of the GPG public key
PrivateKeyMd5
string
MD5 hash of the GPG private key.
GeneratedPublicKey
string
GPG public key
GeneratedPrivateKey
string
GPG private key.
PrivateKeyPasswordMd5
string
GPG private key password. Only required for password protected keys.