The secret-values Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The secret-values Reference Manual

This is the secret-values Reference Manual, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 04:33:49 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Secret values is a Common Lisp library designed to reduce the risk of
accidentally revealing secret values such as passwords.

Source code at https://github.com/rotatef/secret-values

Applications will often have to deal with values that should be kept
secret, e.g. a password for accessing the applications database. There
will allways be a risk that such a secret value is accidentally
revealed e.g. in a backtrace or log file. Fixing this can be difficult
because the code that generates the backtrace or log is often not part
of the application. Turning off logging or backtrace is seldom an
option. Making sure that logs and backtrace are kept secure can also
be difficult.

This library provides a simple wrapper type that can be used to
conceal secret data. This wrapper tries to keep it's value secret by
overriding print-object and some other tricks. In order to get the
full benefits, the value should be concealed as early as possible and
revealed as late as possible. For example, a database library should
accept the password as a concealed value and only reveal it just
before it's used to authenticate with the database. This will greatly
reduce the risk of the password ending up in a log file or backtrace.

All symbols are exported from the package SECRET-VALUES.

The function CONCEAL-VALUE wraps a value into an object of type
SECRET-VALUE. An optional name can be provided. The name is intended
for debugging only and is included when the object is printed.

To get the value back, call REVEAL-VALUE.

The function ENSURE-VALUE-REVEALED behaves like REAVEAL-VALUE when
called with an argument of type SECRET-VALUE, otherwise it just
returns it's argument verbatim. This makes it easy to write code that
accepts both secret and plaintext values.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 secret-values

License

MIT

Description

Secret values is a Common Lisp library designed to
reduce the risk of accidentally revealing secret values such as passwords.

Source

secret-values.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 secret-values.asd

Location

secret-values.asd

Systems

secret-values (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 secret-values/package.lisp

Parent

secret-values (system)

Location

package.lisp

Packages

secret-values


Previous: , Up: Lisp files   [Contents][Index]

3.1.3 secret-values/secret-values.lisp

Dependency

package.lisp (file)

Parent

secret-values (system)

Location

secret-values.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 secret-values

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Functions

Function: conceal-value VALUE &key NAME

Conceals value into a SECRET-VALUE object. An optional name can be provided to aid debugging.

Package

secret-values

Source

secret-values.lisp (file)

Function: ensure-value-concealed OBJECT &key NAME

If object is already a of type SECRET-VALUE returns is unaltered, otherwise conceals it as if by calling CONCEAL-VALUE.

Package

secret-values

Source

secret-values.lisp (file)

Function: ensure-value-revealed OBJECT

If object is type SECRET-VALUE returns the concealed value, otherwise returns object.

Package

secret-values

Source

secret-values.lisp (file)

Function: reveal-value SECRET-VALUE

Returns the value in SECRET-VALUE. An error of type TYPE-ERROR is signalled if the argument is not of type SECRET-VALUES.

Package

secret-values

Source

secret-values.lisp (file)

Function: secret-value-p OBJECT
Package

secret-values

Source

secret-values.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Structures

Structure: secret-value ()
Package

secret-values

Source

secret-values.lisp (file)

Direct superclasses

structure-object (structure)

Direct methods

print-object (method)

Direct slots
Slot: name
Readers

secret-value-name (function)

Writers

(setf secret-value-name) (function)

Slot: symbol
Readers

secret-value-symbol (function)

Writers

(setf secret-value-symbol) (function)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Functions

Function: copy-secret-value INSTANCE
Package

secret-values

Source

secret-values.lisp (file)

Function: make-secret-value &key (NAME NAME) (SYMBOL SYMBOL)
Package

secret-values

Source

secret-values.lisp (file)

Function: secret-value-name INSTANCE
Function: (setf secret-value-name) VALUE INSTANCE
Package

secret-values

Source

secret-values.lisp (file)

Function: secret-value-symbol INSTANCE
Function: (setf secret-value-symbol) VALUE INSTANCE
Package

secret-values

Source

secret-values.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   S  
Index Entry  Section

F
File, Lisp, secret-values.asd: The secret-values<dot>asd file
File, Lisp, secret-values/package.lisp: The secret-values/package<dot>lisp file
File, Lisp, secret-values/secret-values.lisp: The secret-values/secret-values<dot>lisp file

L
Lisp File, secret-values.asd: The secret-values<dot>asd file
Lisp File, secret-values/package.lisp: The secret-values/package<dot>lisp file
Lisp File, secret-values/secret-values.lisp: The secret-values/secret-values<dot>lisp file

S
secret-values.asd: The secret-values<dot>asd file
secret-values/package.lisp: The secret-values/package<dot>lisp file
secret-values/secret-values.lisp: The secret-values/secret-values<dot>lisp file

Jump to:   F   L   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
C   E   F   M   R   S  
Index Entry  Section

(
(setf secret-value-name): Internal functions
(setf secret-value-symbol): Internal functions

C
conceal-value: Exported functions
copy-secret-value: Internal functions

E
ensure-value-concealed: Exported functions
ensure-value-revealed: Exported functions

F
Function, (setf secret-value-name): Internal functions
Function, (setf secret-value-symbol): Internal functions
Function, conceal-value: Exported functions
Function, copy-secret-value: Internal functions
Function, ensure-value-concealed: Exported functions
Function, ensure-value-revealed: Exported functions
Function, make-secret-value: Internal functions
Function, reveal-value: Exported functions
Function, secret-value-name: Internal functions
Function, secret-value-p: Exported functions
Function, secret-value-symbol: Internal functions

M
make-secret-value: Internal functions

R
reveal-value: Exported functions

S
secret-value-name: Internal functions
secret-value-p: Exported functions
secret-value-symbol: Internal functions

Jump to:   (  
C   E   F   M   R   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   N   S  
Index Entry  Section

N
name: Exported structures

S
Slot, name: Exported structures
Slot, symbol: Exported structures
symbol: Exported structures

Jump to:   N   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   P   S  
Index Entry  Section

P
Package, secret-values: The secret-values package

S
secret-value: Exported structures
secret-values: The secret-values system
secret-values: The secret-values package
Structure, secret-value: Exported structures
System, secret-values: The secret-values system

Jump to:   P   S