本文整理汇总了Golang中github.com/agl/pond/client/disk.TPM类的典型用法代码示例。如果您正苦于以下问题:Golang TPM类的具体用法?Golang TPM怎么用?Golang TPM使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TPM类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: createErasureStorage
func (c *guiClient) createErasureStorage(pw string, stateFile *disk.StateFile) error {
var tpmInfo string
present := tpm.Present()
if present {
tpmInfo = tpmPresentMsg
} else {
tpmInfo = tpmNotPresentMsg
}
ui := VBox{
widgetBase: widgetBase{padding: 40, expand: true, fill: true, name: "vbox"},
children: []Widget{
Label{
widgetBase: widgetBase{font: "DejaVu Sans 30"},
text: "Configure TPM",
},
Label{
widgetBase: widgetBase{
padding: 20,
font: "DejaVu Sans 14",
},
text: tpmIntroMsg + "\n\n" + tpmInfo,
wrap: 600,
},
HBox{
children: []Widget{
Button{
widgetBase: widgetBase{
name: "tpm",
insensitive: !present,
},
text: "Try to configure TPM",
},
},
},
TextView{
widgetBase: widgetBase{name: "log", expand: true, fill: true},
editable: false,
},
Button{
widgetBase: widgetBase{name: "continue"},
text: "Continue without TPM",
},
},
}
c.gui.Actions() <- SetBoxContents{name: "body", child: ui}
c.gui.Actions() <- SetFocus{name: "tpm"}
c.gui.Actions() <- UIState{uiStateErasureStorage}
c.gui.Signal()
var logText string
tpm := disk.TPM{
Log: func(format string, args ...interface{}) {
c.log.Printf(format, args...)
logText += fmt.Sprintf(format, args...) + "\n"
c.gui.Actions() <- SetTextView{name: "log", text: logText}
c.gui.Signal()
},
Rand: c.rand,
}
NextEvent:
for {
event, ok := <-c.gui.Events()
if !ok {
c.ShutdownAndSuspend()
}
click, ok := event.(Click)
if !ok {
continue
}
switch click.name {
case "continue":
stateFile.Erasure = nil
return stateFile.Create(pw)
case "tpm":
if len(logText) > 0 {
c.gui.Actions() <- SetTextView{name: "log", text: ""}
c.gui.Signal()
logText = ""
time.Sleep(300 * time.Millisecond)
}
stateFile.Erasure = &tpm
c.gui.Actions() <- Sensitive{name: "tpm", sensitive: false}
c.gui.Actions() <- Sensitive{name: "continue", sensitive: false}
c.gui.Signal()
if err := stateFile.Create(pw); err != nil {
tpm.Log("Setup failed with error: %s", err)
tpm.Log("You can click the button to try again")
c.gui.Actions() <- Sensitive{name: "tpm", sensitive: true}
c.gui.Actions() <- Sensitive{name: "continue", sensitive: true}
c.gui.Signal()
continue NextEvent
}
return nil
//.........这里部分代码省略.........
开发者ID:carriercomm,项目名称:pond,代码行数:101,代码来源:erasure_gui_linux.go
示例2: createErasureStorage
func (c *guiClient) createErasureStorage(pw string, stateFile *disk.StateFile) error {
var tpmInfo string
present := tpm.Present()
if present {
tpmInfo = "Your computer appears to have a TPM chip. Click below to try and use it. You'll need tcsd (the TPM daemon) running."
} else {
tpmInfo = "Your computer does not appear to have a TPM chip. Without one, it's possible that someone in physical possession of your computer and passphrase could extract old messages that should have been deleted. Using a computer with a TPM is strongly preferable until alternatives can be implemented."
}
ui := VBox{
widgetBase: widgetBase{padding: 40, expand: true, fill: true, name: "vbox"},
children: []Widget{
Label{
widgetBase: widgetBase{font: "DejaVu Sans 30"},
text: "Configure TPM",
},
Label{
widgetBase: widgetBase{
padding: 20,
font: "DejaVu Sans 14",
},
text: "It's very difficult to erase information on modern computers so Pond tries to use the TPM chip if possible.\n\n" + tpmInfo,
wrap: 600,
},
HBox{
children: []Widget{
Button{
widgetBase: widgetBase{
name: "tpm",
insensitive: !present,
},
text: "Try to configure TPM",
},
},
},
TextView{
widgetBase: widgetBase{name: "log", expand: true, fill: true},
editable: false,
},
Button{
widgetBase: widgetBase{name: "continue"},
text: "Continue without TPM",
},
},
}
c.gui.Actions() <- SetBoxContents{name: "body", child: ui}
c.gui.Actions() <- SetFocus{name: "tpm"}
c.gui.Actions() <- UIState{uiStateErasureStorage}
c.gui.Signal()
var logText string
tpm := disk.TPM{
Log: func(format string, args ...interface{}) {
c.log.Printf(format, args...)
logText += fmt.Sprintf(format, args...) + "\n"
c.gui.Actions() <- SetTextView{name: "log", text: logText}
c.gui.Signal()
},
Rand: c.rand,
}
NextEvent:
for {
event, ok := <-c.gui.Events()
if !ok {
c.ShutdownAndSuspend()
}
click, ok := event.(Click)
if !ok {
continue
}
switch click.name {
case "continue":
stateFile.Erasure = nil
return stateFile.Create(pw)
case "tpm":
if len(logText) > 0 {
c.gui.Actions() <- SetTextView{name: "log", text: ""}
c.gui.Signal()
logText = ""
time.Sleep(300 * time.Millisecond)
}
stateFile.Erasure = &tpm
c.gui.Actions() <- Sensitive{name: "tpm", sensitive: false}
c.gui.Actions() <- Sensitive{name: "continue", sensitive: false}
c.gui.Signal()
if err := stateFile.Create(pw); err != nil {
tpm.Log("Setup failed with error: %s", err)
tpm.Log("You can click the button to try again")
c.gui.Actions() <- Sensitive{name: "tpm", sensitive: true}
c.gui.Actions() <- Sensitive{name: "continue", sensitive: true}
c.gui.Signal()
continue NextEvent
}
return nil
//.........这里部分代码省略.........
开发者ID:kisom,项目名称:pond,代码行数:101,代码来源:erasure_linux.go
注:本文中的github.com/agl/pond/client/disk.TPM类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论