2023-09-25 18:52:56 +02:00
|
|
|
// Package pam provides a wrapper for the PAM application API.
|
|
|
|
|
package pam
|
|
|
|
|
|
|
|
|
|
// ModuleTransaction is an interface that a pam module transaction
|
|
|
|
|
// should implement.
|
|
|
|
|
type ModuleTransaction interface {
|
|
|
|
|
SetItem(Item, string) error
|
|
|
|
|
GetItem(Item) (string, error)
|
|
|
|
|
PutEnv(nameVal string) error
|
|
|
|
|
GetEnv(name string) string
|
|
|
|
|
GetEnvList() (map[string]string, error)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ModuleHandlerFunc is a function type used by the ModuleHandler.
|
|
|
|
|
type ModuleHandlerFunc func(ModuleTransaction, Flags, []string) error
|
|
|
|
|
|
|
|
|
|
// ModuleTransaction is the module-side handle for a PAM transaction.
|
2023-09-25 19:31:46 +02:00
|
|
|
type moduleTransaction struct {
|
|
|
|
|
transactionBase
|
|
|
|
|
}
|
2023-09-25 18:52:56 +02:00
|
|
|
|
|
|
|
|
// ModuleHandler is an interface for objects that can be used to create
|
|
|
|
|
// PAM modules from go.
|
|
|
|
|
type ModuleHandler interface {
|
|
|
|
|
AcctMgmt(ModuleTransaction, Flags, []string) error
|
|
|
|
|
Authenticate(ModuleTransaction, Flags, []string) error
|
|
|
|
|
ChangeAuthTok(ModuleTransaction, Flags, []string) error
|
|
|
|
|
CloseSession(ModuleTransaction, Flags, []string) error
|
|
|
|
|
OpenSession(ModuleTransaction, Flags, []string) error
|
|
|
|
|
SetCred(ModuleTransaction, Flags, []string) error
|
|
|
|
|
}
|
2023-09-25 19:31:46 +02:00
|
|
|
|
|
|
|
|
// NewModuleTransaction allows initializing a transaction invoker from
|
|
|
|
|
// the module side.
|
|
|
|
|
func NewModuleTransaction(handle NativeHandle) ModuleTransaction {
|
|
|
|
|
return &moduleTransaction{transactionBase{handle: handle}}
|
|
|
|
|
}
|