 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package noise
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| )
 | |
| 
 | |
| // encrypt calls the cipher's encryption. It encrypts the provided plaintext,
 | |
| // slice-appending the ciphertext on out.
 | |
| //
 | |
| // Usually you want to pass a 0-len slice to this method, with enough capacity
 | |
| // to accommodate the ciphertext in order to spare allocs.
 | |
| //
 | |
| // encrypt returns a new slice header, whose len is the length of the resulting
 | |
| // ciphertext, including the authentication tag.
 | |
| //
 | |
| // This method will not allocate if the supplied slice is large enough to
 | |
| // accommodate the encrypted data + authentication tag. If so, the returned
 | |
| // slice header should be a view of the original slice.
 | |
| //
 | |
| // With the poly1305 MAC function that noise-libp2p uses, the authentication tag
 | |
| // adds an overhead of 16 bytes.
 | |
| func (s *secureSession) encrypt(out, plaintext []byte) ([]byte, error) {
 | |
| 	if s.enc == nil {
 | |
| 		return nil, errors.New("cannot encrypt, handshake incomplete")
 | |
| 	}
 | |
| 	return s.enc.Encrypt(out, nil, plaintext)
 | |
| }
 | |
| 
 | |
| // decrypt calls the cipher's decryption. It decrypts the provided ciphertext,
 | |
| // slice-appending the plaintext on out.
 | |
| //
 | |
| // Usually you want to pass a 0-len slice to this method, with enough capacity
 | |
| // to accommodate the plaintext in order to spare allocs.
 | |
| //
 | |
| // decrypt returns a new slice header, whose len is the length of the resulting
 | |
| // plaintext, without the authentication tag.
 | |
| //
 | |
| // This method will not allocate if the supplied slice is large enough to
 | |
| // accommodate the plaintext. If so, the returned slice header should be a view
 | |
| // of the original slice.
 | |
| func (s *secureSession) decrypt(out, ciphertext []byte) ([]byte, error) {
 | |
| 	if s.dec == nil {
 | |
| 		return nil, errors.New("cannot decrypt, handshake incomplete")
 | |
| 	}
 | |
| 	return s.dec.Decrypt(out, nil, ciphertext)
 | |
| }
 |