Example #1
0
 def test_RandomCover(self):
     for i in range(63 - len(hidekey)):
         miscount = 0
         randomvalidmessage = np.array(
             [random.randint(0, JT65_MAX_SYMBOL) for r in range(64)])
         msgcopy = np.copy(randomvalidmessage)
         covered = jts.randomcover(msgcopy, hidekey, i)
         for index, value in enumerate(covered):
             if covered[index] != randomvalidmessage[index]:
                 miscount += 1
         self.assertTrue(i == miscount)
Example #2
0
    jt65data = jts.jt65encodemessages(jt65msgs, args.verbose)

    if args.stegmsg != "" and STEG_ENABLED:
        # Create array of cipher data to hide
        cipherdata = jts.createciphermsgs(
            len(jt65data), args.stegmsg, args.cipher, args.key, args.recipient, args.aesmode, args.verbose
        )

        # Embed steg data in JT65 messages
        finalmsgs = jts.steginject(jt65data, args.noise, cipherdata, hidekey, args.verbose)

    else:
        # No steg data to hide, just add cover noise if specified
        finalmsgs = []
        for msg in jt65data:
            finalmsgs.append(jts.randomcover(msg, [], args.noise, args.verbose))

    # Send to output
    processoutput(finalmsgs, args.stdout, args.wavout, args.wsjt, args.freq, args.mode, args.verbose)

# Decode
elif args.decode:
    stegpresent = False

    # Process input to JT numpy arrays
    jt65data = processinput(args.stdin, args.wavin, args.verbose)
    jt65datacopy = copy.deepcopy(jt65data)
    jt65stegmsgs = []

    # Retrieve JT65 valid messages
    jt65msgs = jts.decodemessages(jt65data, args.verbose)
Example #3
0
    if args.stegmsg != "" and STEG_ENABLED:
        # Create array of cipher data to hide
        cipherdata = jts.createciphermsgs(len(jt65data), args.stegmsg,
                                          args.cipher, args.key,
                                          args.recipient, args.aesmode,
                                          args.verbose)

        # Embed steg data in JT65 messages
        finalmsgs = jts.steginject(jt65data, args.noise, cipherdata, hidekey,
                                   args.verbose)

    else:
        # No steg data to hide, just add cover noise if specified
        finalmsgs = []
        for msg in jt65data:
            finalmsgs.append(jts.randomcover(msg, [], args.noise,
                                             args.verbose))

    # Send to output
    processoutput(finalmsgs, args.stdout, args.wavout, args.wsjt, args.freq,
                  args.mode, args.verbose)

# Decode
elif args.decode:
    stegpresent = False

    # Process input to JT numpy arrays
    jt65data = processinput(args.stdin, args.wavin, args.verbose)
    jt65datacopy = copy.deepcopy(jt65data)
    jt65stegmsgs = []

    # Retrieve JT65 valid messages