File tree 1 file changed +27
-0
lines changed
1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -111,6 +111,33 @@ func (l Link) GetHashKey(nodeKR *crypto.KeyRing) ([]byte, error) {
111
111
return dec .GetBinary (), nil
112
112
}
113
113
114
+ func (l Link ) GetHashKeyFromParent (parentNodeKey , addrKRs * crypto.KeyRing ) ([]byte , error ) {
115
+ if l .Type != LinkTypeFolder {
116
+ return nil , errors .New ("link is not a folder" )
117
+ }
118
+
119
+ enc , err := crypto .NewPGPMessageFromArmored (l .FolderProperties .NodeHashKey )
120
+ if err != nil {
121
+ return nil , err
122
+ }
123
+
124
+ _ , ok := enc .GetSignatureKeyIDs ()
125
+ var dec * crypto.PlainMessage
126
+ if ok {
127
+ dec , err = parentNodeKey .Decrypt (enc , addrKRs , crypto .GetUnixTime ())
128
+ if err != nil {
129
+ return nil , err
130
+ }
131
+ } else {
132
+ dec , err = parentNodeKey .Decrypt (enc , nil , 0 )
133
+ if err != nil {
134
+ return nil , err
135
+ }
136
+ }
137
+
138
+ return dec .GetBinary (), nil
139
+ }
140
+
114
141
func (l Link ) GetSessionKey (nodeKR * crypto.KeyRing ) (* crypto.SessionKey , error ) {
115
142
if l .Type != LinkTypeFile {
116
143
return nil , errors .New ("link is not a file" )
You can’t perform that action at this time.
0 commit comments