github.com/iDigitalFlame/xmt@v0.5.4/data/x_key.go (about)

     1  //go:build !nokeyset
     2  // +build !nokeyset
     3  
     4  // Copyright (C) 2020 - 2023 iDigitalFlame
     5  //
     6  // This program is free software: you can redistribute it and/or modify
     7  // it under the terms of the GNU General Public License as published by
     8  // the Free Software Foundation, either version 3 of the License, or
     9  // any later version.
    10  //
    11  // This program is distributed in the hope that it will be useful,
    12  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14  // GNU General Public License for more details.
    15  //
    16  // You should have received a copy of the GNU General Public License
    17  // along with this program.  If not, see <https://www.gnu.org/licenses/>.
    18  //
    19  
    20  package data
    21  
    22  import "github.com/iDigitalFlame/xmt/data/crypto/subtle"
    23  
    24  // KeyCrypt will perform an "encryption" operation on the underlying Chunk buffer.
    25  // No bytes are added or removed and this will not change the Chunk's size.
    26  //
    27  // If the Chunk is empty, 'nokeyset' was specified on build or the Key is nil,
    28  // this is a NOP.
    29  func (c *Chunk) KeyCrypt(k KeyPair) {
    30  	subtle.XorOp(c.buf, k.share[:])
    31  }