const ( // EventDocOpen is an event triggered when opening the document. EventDocOpen = AuthEvent("DocOpen") // EventEFOpen is an event triggered when accessing an embedded file. EventEFOpen = AuthEvent("EFOpen") )
const ( // PermOwner grants all permissions. PermOwner = Permissions(math.MaxUint32) // PermPrinting allows printing the document with a low quality. PermPrinting = Permissions(1 << 2) // PermModify allows to modify the document. PermModify = Permissions(1 << 3) // PermExtractGraphics allows to extract graphics from the document. PermExtractGraphics = Permissions(1 << 4) // PermAnnotate allows annotating the document. PermAnnotate = Permissions(1 << 5) // PermFillForms allow form filling, if annotation is disabled? If annotation enabled, is not looked at. PermFillForms = Permissions(1 << 8) // PermDisabilityExtract allows to extract graphics in accessibility mode. PermDisabilityExtract = Permissions(1 << 9) // PermRotateInsert allows rotating, editing page order. PermRotateInsert = Permissions(1 << 10) // PermFullPrintQuality limits print quality (lowres), assuming Printing bit is set. PermFullPrintQuality = Permissions(1 << 11) )
AuthEvent is an event type that triggers authentication.
type AuthEvent string
Permissions is a bitmask of access permissions for a PDF file.
type Permissions uint32
func (p Permissions) Allowed(p2 Permissions) bool
Allowed checks if a set of permissions can be granted.
StdEncryptDict is a set of additional fields used in standard encryption dictionary.
type StdEncryptDict struct { R int // (Required) A number specifying which revision of the standard security handler shall be used. P Permissions EncryptMetadata bool // Indicates whether the document-level metadata stream shall be encrypted. O, U []byte OE, UE []byte // R=6 Perms []byte // An encrypted copy of P (16 bytes). Used to verify permissions. R=6 }
StdHandler is an interface for standard security handlers.
type StdHandler interface { // GenerateParams uses owner and user passwords to set encryption parameters and generate an encryption key. // It assumes that R, P and EncryptMetadata are already set. GenerateParams(d *StdEncryptDict, ownerPass, userPass []byte) ([]byte, error) // Authenticate uses encryption dictionary parameters and the password to calculate // the document encryption key. It also returns permissions that should be granted to a user. // In case of failed authentication, it returns empty key and zero permissions with no error. Authenticate(d *StdEncryptDict, pass []byte) ([]byte, Permissions, error) }
func NewHandlerR4(id0 string, length int) StdHandler
NewHandlerR4 creates a new standard security handler for R<=4.
func NewHandlerR6() StdHandler
NewHandlerR6 creates a new standard security handler for R=5 and R=6.